【发布时间】:2016-06-10 13:21:29
【问题描述】:
我正在开发一个程序,该程序用于从相当大的图像中检测彩色地面控制点。 TIFF 图像约为 3 - 4 GB(约 35 000 x 33 000 像素)。 我正在使用 Python 2 和 OpenCV 进行图像处理。
import cv2
img = 'ortho.tif'
I = cv2.imread(img, cv2.IMREAD_COLOR)
这部分不会(总是)产生错误消息。显示图像时:
cv2.imshow('image', I)
我也尝试过使用 matplotlib 显示图像:
plt.imshow(I[:, :, ::-1]) # Hack to change BGR to RGB
OpenCV 或 Python 对大图像有什么限制吗? 你会建议什么来加载这个 iamge?
PS:我做这项工作的计算机是 Windows 10“工作站”(它有足够的马力来处理图像)。
提前感谢您的帮助:)
【问题讨论】:
-
错误信息是什么意思?
-
对于 matplotlib plt.imshow(self.image[:, :, ::-1]) TypeError: 'NoneType' object has no attribute '__getitem__' OpenCV sais: OpenCV Error: Assertion failed (size .width>0 && size.height>0) 在 cv::imshow,文件 ..\..\..\modules\highgui\src\window.cpp,第 261 行 cv2.imshow('image', self.image ) cv2.error: ..\..\..\modules\highgui\src\window.cpp:261: error: (-215) size.width>0 && size.height>0 in function cv::imshow 本质上,表示图像大小为 0 x 0 像素。
-
...您肯定这些东西(当我说这些东西时,我指的是 OpenCV 和 Python)已经编译为 64 位?
-
它是使用 64 位安装程序的 continuum 中的 anaconda 安装的,因此应编译为 64 位。另外,当我运行python时,它说它是64位版本。
-
您能否确认您可以编写一个简单的 C++ 程序,该程序可以进行 malloc (35000*35000*3*sizeof(unsigned char)) 并向每个位置写入一些内容,并且该程序可以正常运行。
标签: python opencv image-processing matplotlib large-files