为什么VS2010下OpenCV读取TIFF文件读取失败?

openCV版本是2.1.代码如下:IplImage*image=cvLoadImage("F:\\myOpencvProject\\mfcTest\\testImage... openCV版本是2.1.
代码如下:
IplImage *image = cvLoadImage("F:\\myOpencvProject\\mfcTest\\testImage.TIFF", CV_LOAD_IMAGE_COLOR);
assert(image != NULL);
我能确定的是路径是对的,能读取到jpg等其它格式图片,testImage.tiff也是一个普通的tiff文件。
那么问题来了,如何判断是不是在配置opencv时出现错误导致的问题,或者其他可能?
不需要详细解决方案,我是找不到问题出在哪。
展开
 我来答
zjnny
2015-08-25 · TA获得超过2037个赞
知道小有建树答主
回答量:1055
采纳率:100%
帮助的人:1063万
展开全部
IplImage* img=0; 
  img=cvLoadImage(fileName);
  if(!img) printf("Could not load image file: %s\n",fileName);
 支持的图像格式: BMP, DIB, JPEG, JPG, JPE, PNG, PBM, PGM, PPM,
                          SR, RAS, TIFF, TIF

OpenCV默认将读入的图像强制转换为一幅三通道彩色图像. 不过可以按以下方法修改读入方式:
img=cvLoadImage(fileName,flag);
 flag: >0 将读入的图像强制转换为一幅三通道彩色图像
       =0 将读入的图像强制转换为一幅单通道灰度图像
       <0 读入的图像通道数与所读入的文件相同.

TIFF是什么图,黑白?你自己做一张彩色的单帧tiff图再试试,CV_LOAD_IMAGE_COLOR是不是设置合适

追问

这个TIFF图像是LZW压缩,应该和这个有关系,我换了一张tif图像无压缩倒是能打开。话说这个LZW压缩后的图像能不能用opencv读取?

追答
  2.0只支持一般格式的tif,因为tif的格式比较复杂随意,不清楚opencv新版本3.0是什么情况,如果也不支持,只能自己改opencv的源代码,网上也许能找到
  或者直接自己调用libtif库读图,在把数据输入到opencv里
这是个好楼主
2015-08-23
知道答主
回答量:9
采纳率:0%
帮助的人:6.8万
展开全部
如果是TIFF大图像好像不能用OpenCV读的,可以用GDAL读。。
追问
谢谢,不过种种条件限制只能用openCV,图像也不算大。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式