OpenCV中文网站

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 安装 配置
查看: 810|回复: 8

读取TIF/TIFF文件时,一个文件中存在多张图像,该如何读取

[复制链接]
发表于 2016-6-7 09:43:37 | 显示全部楼层 |阅读模式
使用OpenCV3.1cv::imread读取TIFF文件时,会默认读取第一张图像,后面的图像则无法读取。
而使用cv::imreadmulti读取的话,又会一直报出【内存位置 0x0014f7e0 处的 std::length_error】的错误。
如下是使用的代码:
  1. //     使用:CV_EXPORTS_W Mat imread( const String& filename, int flags = IMREAD_COLOR );
  2. //     Mat mat = cv::imread("D:\\00_Projects\\AutoScan_0531\\AutoScan\\myfile.tif", 2|4);
  3. //     cv::imshow("myfile", mat);
  4. //
  5. //     使用:CV_EXPORTS_W bool imreadmulti(const String& filename, std::vector<Mat>& mats, int flags = IMREAD_ANYCOLOR)
  6.     std::vector<Mat> mats;
  7.     imreadmulti("D:\\00_Projects\\AutoScan_0531\\AutoScan\\myfile.tif", mats, 2|4); // 此处报错
  8.     for (uint32_t i = 0; i < mats.max_size(); i++)
  9.     {
  10.         cv::imshow("myfile", mats[i]);
  11.     }

复制代码
各位大神该如何处理呢?

回复

使用道具 举报

 楼主| 发表于 2016-6-7 09:49:04 | 显示全部楼层
自己顶~求回复
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-6-7 10:07:56 | 显示全部楼层
求回复,求回复~
回复 支持 反对

使用道具 举报

发表于 2016-6-7 10:40:11 | 显示全部楼层
好像很多软件都打不开多页的tiff,photoshop也不行,就ACDSee可以
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-6-7 15:57:50 | 显示全部楼层
本帖最后由 徜徉若斯 于 2016-6-7 16:16 编辑
piaobuliao 发表于 2016-6-7 10:40
好像很多软件都打不开多页的tiff,photoshop也不行,就ACDSee可以

那是软件层面的啊,我这里问的是使用OpenCV库的时候该如何读取。
另外,其实OpenCV对于TIF/TIFF的支持并不好,某些格式的TIFF就不能支持,比如1位的TIFF文件就需要手动转换成8位的才行。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-6-13 09:14:56 | 显示全部楼层
果然沉底了么。。。求大神指点~
回复 支持 反对

使用道具 举报

发表于 2016-6-13 20:58:26 | 显示全部楼层
感觉可以参考一下C++的命令行指令来读取整个文件夹中的文件
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-6-20 10:18:54 | 显示全部楼层
Lamoer 发表于 2016-6-13 20:58
感觉可以参考一下C++的命令行指令来读取整个文件夹中的文件

额。。没看懂,我是想读取一个图像文件中的多张图片,不是多个文件啊
回复 支持 反对

使用道具 举报

发表于 2018-8-2 16:00:15 | 显示全部楼层
请问楼主,最后怎样解决的啊?
回复 支持 反对

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|blog|OpenCV中文网站 ( 粤ICP备13079875号-2

GMT+8, 2018-8-22 01:24 , Processed in 0.028779 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表