在OpenCV中处理大图像

时间:2014-10-15 10:15:40

标签: c++ image opencv

如何在不调整大小的情况下处理大型(> 15000x15000)图像?

我需要实现的是:在鼠标悬停时获取像素值(x,y,r,g,b)。因此,不能选择调整图像大小以适应屏幕。

我试图找到一个添加滚动条的选项,但没有找到。 我也有想法用100%大小的图像显示固定的窗口大小并拖动图像,但我不知道如何实现它。

我还尝试使用QT构建OpenCV(如here所示),但失败了(无法判断的CMake警告)。

环境:Win 7,VS2013,C ++,OpenCV 3.0

1 个答案:

答案 0 :(得分:2)

这不是一个真正的OpenCV问题。我的建议是你使用你选择的GUI框架来解决这个问题。 Qt将是一个非常合适的选择,它有很好的好处,OpenCV和Qt之间的集成是好的。

  1. 尝试使用Qt构建OpenCV。您没有提供有关错误的详细信息,链接根本没有提及安装。但是,搜索CMake警告或尝试了解如何在Windows上安装Qt应该不会太困难。
  2. 查看使用Qt显示非常大的图像。它拥有您需要的一切。快速搜索this SO回答建议QGraphicsView

  3. 如果你有足够的内存来存储你的15k x 15k图像,你就不需要使用QGraphicsView和平铺。如上所述here,您可能应该使用QPixmap,然后通过第二种方法查找RGB坐标。

  4. 如果内存是个问题

    Here是关于如何仅部分地加载图像,即不完全加载到存储器中的条目(有点旧)。请注意QImageReader的存在。