Imshow() 大小限制
Posted
技术标签:
【中文标题】Imshow() 大小限制【英文标题】:Imshow() size restrictions 【发布时间】:2012-01-04 14:07:47 【问题描述】:我有 6750x6450 像素的图像并尝试使用 OpenCv 中的 imshow() 函数显示它。 当我显示一个图像时,它显示得很糟糕(一些有线输出),当我尝试显示两个图像时,会出现 seqfault。将这些图像保存在硬盘上会产生良好的效果,图像被保存,并且它们是正确的,当我调整它们的大小时它们也正确显示。 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 位
【问题讨论】:
嗨,我确定 OpenCV 不是为大尺寸图像设计的。你的架构是什么?台式电脑? 32/64 位?窗户,Linux?我发现了其他人使用比你更大的图像的例子:tech.groups.yahoo.com/group/OpenCV/message/42362 我已经编辑了我的问题并提供了我的平台详细信息。 【参考方案1】:图像可能大于您当前的屏幕分辨率。问题似乎是它们太大了,OpenCV 无法在窗口中处理它们。
可以肯定的是,我会在 Mac 或 Linux 上尝试您的代码,因为 OpenCV 是跨平台的,并且每个操作系统都有特定的窗口管理实现。
【讨论】:
对于这么大的图像,您需要除 imshow 之外的可视化工具。类似于 Python Matplotlib imshow 的东西,因为它可以为可视化目的进行一些调整大小。或者只是将其保存为图像。以上是关于Imshow() 大小限制的主要内容,如果未能解决你的问题,请参考以下文章
OpenCV 函数学习03-图像的显示(cv2.imshow)
opencv中图片文件太大imshow显示不了,怎么办,大神指点下
使用 matplotlib.pyplot、imshow() 和 savefig() 以全分辨率绘图?