QT+opencv学习笔记一 opencv配置及Mat浅拷贝
2015-06-30 19:08
621 查看
今天终于把Qt + opencv配置成功了,中间有一些曲折,在这里记录一下。
vs2013 + opencv的方法之前记录过,但这次的不太一样,我们一开始按照这篇文章配置pro
Qt5中进行OpenCV开发教程
但是,死活出不来结果,研究发现,我们用的是 mingw 不是 vs,这个方法适合vs编译器 (具体可以参考:win7下的Qt环境+OpenCV视觉库)
后来,我们找到了这篇文章 QT creator+OpenCV2.4.2+MinGW 在windows下开发环境配置
但是还是有点曲折,
后来,重新弄的时候, 还勾选了 WITH_OPENGL, 因为中途系统崩溃过一次, QT虽然可以直接用, 但是环境变量中的path都不见了, 于是还是需要重新添加一下, path 环境变量的。
这边顺便记录一下我在 pro中添加的配置:
以上是配置opencv部分
===============【我是华丽丽的分割线】========================
配置成功opencv之后, 对着书 抄了一段代码:
这段代码实现的功能很简单, 导入一张图片, 并添加椒盐噪声。
这里需要注意的一点是:
在opencv中, 这两种形式都是可以达到添加噪声的效果的, 个人理解,原因在于opencv的 Mat 本质上是一个智能指针,即使是作为形参传递给函数, 也只是将他的引用计数加1. 换句话说实际上是浅拷贝。
因而, 加不加 & 都是OK的<^_^>
但是, 还是建议添加引用符号, 看上去更加容易理解一些。
vs2013 + opencv的方法之前记录过,但这次的不太一样,我们一开始按照这篇文章配置pro
Qt5中进行OpenCV开发教程
但是,死活出不来结果,研究发现,我们用的是 mingw 不是 vs,这个方法适合vs编译器 (具体可以参考:win7下的Qt环境+OpenCV视觉库)
后来,我们找到了这篇文章 QT creator+OpenCV2.4.2+MinGW 在windows下开发环境配置
但是还是有点曲折,
一开始没有勾选 WITH_QT
, 大家都懂的,gg了。后来,重新弄的时候, 还勾选了 WITH_OPENGL, 因为中途系统崩溃过一次, QT虽然可以直接用, 但是环境变量中的path都不见了, 于是还是需要重新添加一下, path 环境变量的。
这边顺便记录一下我在 pro中添加的配置:
INCLUDEPATH += E:\opencv2.4.9\opencv\build_MinGW\install\include \ E:\opencv2.4.9\opencv\build_MinGW\install\include\opencv \ E:\opencv2.4.9\opencv\build_MinGW\install\include\opencv2 # ========================== x64 ======================= LIBS += E:/opencv2.4.9/opencv/build_MinGW/install/x64/mingw/lib/libopencv_videostab249.dll.a LIBS += E:/opencv2.4.9/opencv/build_MinGW/install/x64/mingw/lib/libopencv_calib3d249.dll.a LIBS += E:/opencv2.4.9/opencv/build_MinGW/install/x64/mingw/lib/libopencv_contrib249.dll.a LIBS += E:/opencv2.4.9/opencv/build_MinGW/install/x64/mingw/lib/libopencv_core249.dll.a LIBS += E:/opencv2.4.9/opencv/build_MinGW/install/x64/mingw/lib/libopencv_features2d249.dll.a LIBS += E:/opencv2.4.9/opencv/build_MinGW/install/x64/mingw/lib/libopencv_flann249.dll.a LIBS += E:/opencv2.4.9/opencv/build_MinGW/install/x64/mingw/lib/libopencv_gpu249.dll.a LIBS += E:/opencv2.4.9/opencv/build_MinGW/install/x64/mingw/lib/libopencv_highgui249.dll.a LIBS += E:/opencv2.4.9/opencv/build_MinGW/install/x64/mingw/lib/libopencv_imgproc249.dll.a LIBS += E:/opencv2.4.9/opencv/build_MinGW/install/x64/mingw/lib/libopencv_legacy249.dll.a LIBS += E:/opencv2.4.9/opencv/build_MinGW/install/x64/mingw/lib/libopencv_ml249.dll.a LIBS += E:/opencv2.4.9/opencv/build_MinGW/install/x64/mingw/lib/libopencv_nonfree249.dll.a LIBS += E:/opencv2.4.9/opencv/build_MinGW/install/x64/mingw/lib/libopencv_objdetect249.dll.a LIBS += E:/opencv2.4.9/opencv/build_MinGW/install/x64/mingw/lib/libopencv_ocl249.dll.a LIBS += E:/opencv2.4.9/opencv/build_MinGW/install/x64/mingw/lib/libopencv_photo249.dll.a LIBS += E:/opencv2.4.9/opencv/build_MinGW/install/x64/mingw/lib/libopencv_stitching249.dll.a LIBS += E:/opencv2.4.9/opencv/build_MinGW/install/x64/mingw/lib/libopencv_superres249.dll.a LIBS += E:/opencv2.4.9/opencv/build_MinGW/install/x64/mingw/lib/libopencv_ts249.a LIBS += E:/opencv2.4.9/opencv/build_MinGW/install/x64/mingw/lib/libopencv_video249.dll.a
以上是配置opencv部分
===============【我是华丽丽的分割线】========================
配置成功opencv之后, 对着书 抄了一段代码:
#include <opencv.hpp> #include <iostream> using namespace std; void salt(cv::Mat &image, int n) { for (int k = 0; k < n; k++) { int i = rand()%image.cols; int j = rand()%image.rows; if(image.channels() == 1) // 灰度图 { image.at<uchar>(j, i) = 255; } else if(image.channels() == 3) // rgb 图 { image.at<cv::Vec3b>(j, i)[0] = 255; image.at<cv::Vec3b>(j, i)[1] = 255; image.at<cv::Vec3b>(j, i)[2] = 255; } } } int main() { cv::Mat image = cv::imread("E:\\system dir\\Desktop\\1_5.jpg"); salt(image, 3000); cv::namedWindow("Image", 1); cv::imshow("Image", image); cv::waitKey(0); return 0; }
这段代码实现的功能很简单, 导入一张图片, 并添加椒盐噪声。
这里需要注意的一点是:
void salt(cv::Mat &image, int n) void salt(cv::Mat image, int n)
在opencv中, 这两种形式都是可以达到添加噪声的效果的, 个人理解,原因在于opencv的 Mat 本质上是一个智能指针,即使是作为形参传递给函数, 也只是将他的引用计数加1. 换句话说实际上是浅拷贝。
因而, 加不加 & 都是OK的<^_^>
但是, 还是建议添加引用符号, 看上去更加容易理解一些。
相关文章推荐
- QT creator+OpenCV2.4.2+MinGW 在windows下开发环境配置
- Qt浅谈之二十八解析XML文件
- 各种Qt的区别——Qt,Qt/Embeded,Qtopia,Qt Designer,Qt Creator
- QT文档(中文版)
- QT开发(一)环境搭建
- 实现用qt打开多个数据库
- QT软键盘无法弹出问题
- QT使用QCustomPlot 绘制柱状图
- Windows下Qt静态编译全解
- Qt编程之右键单击QTreeWidgetItem弹出菜单
- Qt实现启动画面
- 安装qt问题锦集
- 在QListView中显示图标
- Qt5.4生成安装包过程
- QT 文件读写
- Qt事件和事件循环
- qt QComboBox dataChanged()信号的发射
- Qt之QTextCodec乱谈
- QT 聊天程序
- 【原创】QT编程 多线程