文章首发于我的个人博客:欢迎大佬们来逛逛
OpenCV项目地址及源代码:点击这里
点击下方连接进入官网下载:
Releases
选择合适的版本,直接下载即可。
下载完成后将其 build目录下的x64下的vc16下的bin保存为系统环境变量:
F:\Tools\openCV\openCV\build\x64\vc16\bin
然后打开vs2022,配置包含目录与库目录:
包含目录:F:\Tools\openCV\openCV\build\include
库目录:F:\Tools\openCV\openCV\build\x64\vc16\lib
然后选择连接器 - 输入,配置依赖项:
输入库目录下的opencv_world470d.lib
文件,注意是debug版本,所以有个 d,如果要配置release版本,则输入不加d的就行。
配置完成输入基本的程序代码来测试:
#include
#include
int main()
{
cv::Mat m = cv::imread("piv.png",cv::ImreadModes::IMREAD_REDUCED_COLOR_2);
cv::imshow("windowTitle", m);
cv::waitKey();
return 0;
}
成功运行。
接着导出为模板
直接下一步就好了
经过了上面的配置后,我们使用此模板重新创建一个项目来编写一个最简单的opencv项目。
头文件:
#include
opencv必须包含的头文件。
矩阵类型,用于存储数据及图片。
它包含很多的构造函数,其中有一个是从 imread 中加载数据,然后保存此图片的通道数据,
cv::Mat m(...) //构造
imread
函数
位于cv命名空间下,用于读取图片,包含两个参数,可以选择加载的模式(下节课再说)。
参数一表示路径,注意我这里是相对路径。
其中代码的**IMREAD_REDUCED_COLOR_2
**表示把图片的高度和宽度缩小为原来的 1 2 \frac{1}{2} 21
cv::Mat m = cv::imread("piv.png",cv::ImreadModes::IMREAD_REDUCED_COLOR_2);
imshow
函数
用于显示图片,参数一是窗口的标题,参数二是用来显示的InputArray
类型的参数。
这里InputArray
貌似和Mat
类型不搭边啊,为什么可以传递?
看它的构造函数:实际上Mat就是InputArray。
_InputArray(const Mat& m);
cv::imshow("windowTitle", m);
waitKey
函数
等待按下键时停止。返回值是所按的键值。
如果我们需要按下 ESC
键退出,则设置一个循环即可(ESC为键值为27)
while (cv::waitKey()!=27){}
完整代码:
#include
#include
int main()
{
cv::Mat m = cv::imread("piv.png",cv::ImreadModes::IMREAD_REDUCED_COLOR_2);
cv::imshow("windowTitle", m);
cv::waitKey();
return 0;
}