OpenCV学习笔记
工程逻辑:
1、创建工程项目
(1)创建工程文件夹
(2)导入相关资源
(3)使用CMake编写
2、创建对应的代码源文件
(1)创建CMakeLists.txt
(2)创建montage.cpp
(3)创建工作目录build
VS + OpenCV环境配置
QT + OpenCV环境配置太恼火了,还是VS + OpenCV简单快捷,教程可参考链接。
新建控制台应用/空项目,然后添加属性管理器。
属性管理器
“视图”->“其他窗口”->“属性管理器”,右键添加现有属性表。
环境测试,图片读取
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace cv;
int main(int argc, char* argv[])
{
Mat image;
image = imread("E:/img.jpg"); //绝对路径或者相对路径
imshow("TestName", image);
waitKey(0);
return 0;
}
//resize设置图片尺寸;
resize(image, image, Size(1920, 1080));
VS注释
先按 Ctrl - K 组合键,再按 Ctrl - C 组合键进行注释
先按 Ctrl - K 组合键,再按 Ctrl - U 组合键即可取消注释
spintf函数报错: error C4996: ‘sprintf’: This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
原因是Visual C++ 2019 使用了更加安全的 run-time library routines 。新的Security CRT functions(就是那些带有“_s”后缀的函数)
解决方法:将原来的旧函数替换成新的 Security CRT functions 即加上_s后缀,即spintf_s();
Mat特指2维矩阵
MatND是多维矩阵(>=3维)
但2.2以后它们被统一成Mat,Mat可以表示任意维矩阵,统一使用Mat就行了。
VS+ OpenCV感觉用起来不顺手,还是重新配置一下QT吧。
QT配置opencv
第二次configure基本都会报错,虽然最后显示的都是configure done,进度条往前翻,就会看见好几个标红报错的地方,不只这一个,有好几个报错,此处不一一列举:
在使用cmake编译时会在opencv下新建一个文件夹,我的是MinGW
在MinGW文件夹下找到CMakeDownloadLog.txt,内容大致如下
找到里面给出的网址1所指https://…,借个梯子然后下载,下载后放到2所指下E:/OpenCV454/opencv/sources/.cache/ffmpeg文件夹下面,该文件夹下原本也有几个文件,但是都是空内容,下载的文件名要与原本的文件名一致,改成3所指文件名:8862c87496e2e8c375965e1277dee1c7-ffmpeg_version.cmake。
其它报错同样处理,除了ffmpeg_version.cmake。
注意
如果直接将网页内容复制下来写入自己创建的ffmpeg_version.cmake后,则仍然提示无法使用。需要直接在网页处右键点击另存为,这样保存后,再将这个cmake放在.cache相应的文件夹下,并将名称更改成对应的文件名一致即可。
其他的直接下载替换 。
下载都需要科学上网才行。推荐一波某宝,代下载,相当奈斯
测试程序:使用Qt显示图片
注意:从别的教程里直接复制代码可能运行会报错,因为经常在复制的时候会粘贴一些看不到的字符,建议自己手打一遍程序。本人就是直接复制粘贴,然后程序跑步起来,自己手敲一遍就可以了。
QT环境配置是没问题了,但是好多opencv函数在QT里面有同名的,但是用法不一样,还得自己一个个改。算了,我还是回到VS吧。
是的,反复横跳就是我。