opencv

读取图片

1
2
3
4
5
Mat src = imread("E:/vs2019/code/opencv/images/A.jpg");
//加载灰度图形
Mat img = imread("E:/vs2019/code/opencv/images/A.jpg", IMREAD_GRAYSCALE);
//加载有透明通道的图像
Mat img2 = imread("E:/vs2019/code/opencv/images/A.jpg",IMREAD_UNCHANGED);

显示图片

1
2
3
4
imshow("input", src);
//当图片很大时,图像会显示不全,并且图片窗口无法控制大小
//这时候就需要在imshow之前加一个函数
namedWindow("图片", WINDOW_FREERATIO);

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>


using namespace cv;
using namespace std;

int main()
{
Mat img = imread("E:/vs2019/code/opencv/images/A.jpg", IMREAD_GRAYSCALE);
if (img.empty()) {
cout << "could not load image ..." << endl;
return -1;
}
//namedWindow("图片", WINDOW_FREERATIO);
imshow("图片", img);
waitKey(60000);
}

色彩空间转换

1
2
3
4
5
6
7
8
9
10
11
#include <quickopencv.h>

void QuickDemo::colorSpace_Demo(Mat &image) {
Mat gray, hsv;
cvtColor(image, hsv, COLOR_BGR2HSV);
cvtColor(image, gray, COLOR_BGR2GRAY);
imshow("HSV", hsv);
imshow("灰度", gray);
imwrite("E:/vs2019/code/opencv/images/Ahsv.jpg", hsv);
imwrite("E:/vs2019/code/opencv/images/Agray.jpg", gray);
}

图像保存