【发布时间】:2015-11-28 01:37:43
【问题描述】:
我的计算机科学实验室选择我来开发图形用户界面 (GUI),其主要目标是允许用户打开高分辨率图像(TIFF 格式)并对其进行操作(放大、缩小、绘制矩形、创建和编辑注释...)。
我想使用 Qt 和 OpenCV 构建这个 GUI。不过,我对在这个项目中使用 OpenCV 有一些疑问。
因此,我的问题是:
- Qt 是否允许您处理高分辨率 TIFF 图像(2000x3000 像素?
- OpenCV 是否允许您处理高分辨率 TIFF 图像?
- 将 OpenCV TIFF 图像转换为 Qt TIFF 图像是否容易?
【问题讨论】:
-
OpenCV 用于计算机视觉,而不是用于图像渲染。因此,OpenCV 会将每个图像完全加载到内存中,并且通常适用于 24 位 BGR 图像。但是,2000x3000 并不是那么大的尺寸,我想它会起作用。 OpenCV 提供了访问子图像的简单方法和调整图像大小的简单方法(使用不同的插值方法)。您可能需要这两个功能来显示不适合您的屏幕的图像。不确定 TIFF,但 OpenCV 不允许您访问已加载图像的任何元信息。
-
因此,我想 OpenCV 可能是打开 Tiff 图像的一个很好的解决方案。但是Qt?它可以做同样的工作吗?
-
我会使用 tiff 库(或 opencv,如果足够)进行加载,使用 openCV 调整大小/子图像,使用 Qt 显示 + 用户输入
-
好的,非常感谢。
-
tiff 图像将由 tiff 库或 openCV 加载,Qt 将仅访问具有 RGB 值的内存块。因此,对于 Qt 来说,在所有文件读取和图像解码已经由 tiff 库或 OpenCV 完成之前,该图像之前是什么类型的文件并不重要。但是:可能这是一个直接在 Qt 中使用 TIFF 图像的插件。如果可行,则根本不需要 OpenCV(如果 Qt 允许您缩放/子图像等,并且 Qt 可以处理大尺寸图像)。但是如果你只使用Qt来显示,你完全不用关心Qt中的TIFF。
标签: c++ qt user-interface opencv