OpenCV学习1-VS2022+OpenCV环境配置
-
- [1.VS、Image Watch、FastStone Image Viewer、OpenCV](#1.VS、Image Watch、FastStone Image Viewer、OpenCV)
- 2.VS2022配置OpenCV环境
- 3.Debug模式下日志的关闭
1.VS、Image Watch、FastStone Image Viewer、OpenCV
1.安装VS2022
2.安装看图拓展:Image Watch for Visual Studio 2022
3.安装图像对比软件 FastStone Image Viewer
4.OpenCV官网下载:opencv.org/release
2.VS2022配置OpenCV环境
配置:
1.添加环境变量D:\ThirdLib\opencv\build\x64\vc16\bin
2.添加包含目录:
D:\ThirdLib\opencv\build\include\opencv2
D:\ThirdLib\opencv\build\include\
3.添加库目录:
D:\ThirdLib\opencv\build\x64\vc16\lib
4.添加附加依赖项:库目录下的文件
如果是Release版本:opencv_world480.lib
如果是Debug版本:opencv_world480d.lib
get-started 测试程序:
cpp
#include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>
using namespace cv;
int main()
{
std::string image_path = "path/to/image";
Mat img = imread(image_path, IMREAD_COLOR);
imshow("Display window", img);
int k = waitKey(0); // Wait for a keystroke in the window
return 0;
}
3.Debug模式下日志的关闭
如果实在Debug模式下,则会输出大量日志信息,使用以下代码可以关闭日志的输出:
cpp
// 包含头文件
#include <opencv2/core/utils/logger.hpp>
// main函数中
cv::utils::logging::setLogLevel(utils::logging::LOG_LEVEL_SILENT);
cpp
#include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/core/utils/logger.hpp>
using namespace cv;
using namespace std;
int main()
{
cout << "OpenCV Version: " << CV_VERSION << endl;
utils::logging::setLogLevel(utils::logging::LOG_LEVEL_SILENT);
// jpg图片
string image_path = "morty.jpg";
Mat img_jpg = imread(image_path, IMREAD_UNCHANGED);
if (img_jpg.empty())
{
cout << "Input image is null!" << endl;
return 0;
}
imshow(image_path, img_jpg);
cout << "Channel nmuber: " << img_jpg.channels() << endl;
cout << "Size: " << img_jpg.size << endl;
// png图片
image_path = "skinner.png";
Mat img_png = imread(image_path, IMREAD_UNCHANGED);
if (img_png.empty())
{
cout << "Input image is null!" << endl;
return 0;
}
imshow(image_path, img_png);
cout << "Channel nmuber: " << img_png.channels() << endl;
cout << "Size: " << img_png.size() << endl;
int k = waitKey(0); // Wait for a keystroke in the window
return 0;
}