为什么使用QT编译OpenCV
Why compile OpenCV with QT?
我正在使用Qt&一个新项目的OpenCV即将编译OpenCV以与MinGW合作。
有人认为我可以编译支持Qt的OpenCV库,但我真的不明白为什么要这么做。如果我不编译支持Qt的库,我仍然可以使用这样的方法将cv::mat
路由到QImage
。
那么我错过了什么?使用OpenCV编译Qt有什么价值?
我在网上搜索过这样的页面,这个&这(来自搜索"为什么用Qt编译OpenCV")只向我展示了如何用Qt进行编译,而不是为什么。
LE:误解了问题
highgui模块使用WITH_QT选项来使用QT创建窗口,因此无论如何设置WITH_QT,QImage到cv::Mat的转换以及反之亦然都将起作用。
首先澄清一下:你不是用Qt编译OpenCV,Qt不是编译器,所以你不能用它编译任何东西。Qt是一个C++库(它被称为
framework
,因为它将一些设计规则强加给您的应用程序源代码,但基本上它是一个C++库,就像OpenCV一样)。
现在,在C++世界*中,要同时使用一些库,您需要使用相同的编译器(在某些情况下,甚至使用相同的编译设置)来构建这些库,因此必须决定要使用哪个C++编译器,并使用相同的编辑器来构建Qt和OpenCV——不一定是您自己构建的——二进制文件可以从它们的网站上获得。
如果你想使用MinGW,你需要使用MinGW编译器构建OpenCV,因为OpenCV(至少2410版)只与Visual C++版本10、11、12一起构建,也就是说Visual Studio 2010、2012和2013。
因此,如果您决定使用某些Visual Studio版本,根据您选择的版本,您可能可以将Qt与OpenCV一起使用,而不必自己构建两者,但如果您想要MinGW编译器,则需要使用MinGW构建OpenCV。
*如果你的库只导出一个C接口,你就可以逃脱惩罚,但无论是Qt还是最新的OpenCV版本都不是这样。//如果你想了解更多详细信息,请使用你最喜欢的互联网搜索引擎搜索:c++ binary compatibility
和或c++ abi
您希望使用Qt编译OpenCV至少有两个原因:
- 它为您提供
imshow
中的缩放(鼠标滚轮) - 当鼠标悬停在该像素上时,它会为您提供像素RGB值
如果没有WITH_QT
,你就只有一个空窗口,没有这些功能(你也会错过额外的按钮,比如保存图片),这会使图像处理调试更加乏味。
- Mingw-64 在构建和安装后不会编译 openCV 代码
- 无法在 CLion 中编译 OpenCV 头文件
- 在Linux/Ubuntu中编译openCV应用程序时,如何解决未定义的引用cv:..?
- 在构建时从源代码编译 OpenCV 3
- 编译 opencv 示例麻烦
- 尝试从 Github 编译 OpenCV QT 代码时出错
- 当 Mingw 为 C++ 编译 OpenCV 时,我遇到错误?
- 如何使用text.hpp(可选模块)重新编译OpenCV
- 使用命名空间别名编译 OpenCV
- 从源代码编译 openCV:*** 未指定目标,也未找到生成文件.停
- 如何用GTK 2.x而不是GTK3.X编译OpENCV
- 在 ubuntu 上交叉编译 openCV for ARM
- 当我尝试在启用推理引擎的情况下编译 OpenCv 时,出现错误
- 无法使用 OpenVino 推理编译 OpenCV,无法读取 cpuid.txt
- 在Debian上编译OpenCV(C++)时出错
- 如何使用Fast Downward编译OpenCV
- 使用CUDA编译OpenCV示例程序时出错
- C++ - 无法编译 OpenCV 程序
- 如何使用OpenMP编译OpenCV
- 使用CMake编译OpenCV项目时出错