2012-01-04 293 views
1

我有图像6750x6450像素,并试图用OpenCv中的imshow()函数显示它。 当我显示一个图像时显示不好(某些有线输出),当我尝试显示两个图像时出现seqfault。将这些图像保存在硬盘上会给出好的结果,图像会被保存,并且它们是正确的,当我调整它们的大小时,它们也会被正确显示。 imshow()函数有一些大小限制吗?Imshow()大小限制

代码:

Mat bigImage1 = imread(...); 
Mat bigImage2 = imread(...); 
namedWindow("first",CV_WINDOW_FULLSCREEN); 
namedWindow("second",CV_WINDOW_FULLSCREEN); 
imshow("first",bigImage1); 
imshow("second",bigImage2); 

我工作的桌面计算机上的Windows 7 64位

+1

嗨,我敢肯定的是,OpenCV不是为大尺寸图像设计的。你的架构是什么?台式电脑? 32/64位? Windows,Linux? 我发现了其他使用大于你的图片的例子:http://tech.groups.yahoo.com/group/OpenCV/message/42362 – jlengrand 2012-01-04 14:22:28

+0

我编辑了我的问题并提供了我的平台详细信息。 – krzych 2012-01-04 14:39:38

回答

1

的图像可能比当前屏幕分辨率。问题似乎是OpenCV在窗口中处理它们太大了。

为了确定,我会在Mac或Linux上尝试您的代码,因为OpenCV是跨平台的,并且每个操作系统都有特定的窗口管理实现。

+1

对于这样大的图像,您需要imshow以外的可视化工具。因为它可以为可视化目的做一些调整大小,所以沿着Python Matplotlib imshow的一些东西。或者将它保存为图像。 – 2012-01-04 16:36:36