【视觉设计】openCV学习笔记

忙碌忙碌只有笔记,跟着openCV学堂B站视频学的,方便自己在没有电脑的时候复习语法吧,啥内容全在代码注释上了,感兴趣的小伙伴们一起学习吧!!!

头文件

#pragma once

#include 

using namespace cv;

class QuickDemo {
     
public:
	void colorSpace_Demo(Mat& image);
	void mat_creation_demo(Mat& image);
};

源文件主函数

//001图像读取与显示
//002图像色彩空间转换
//003图像对象的创建与赋值
//使用头文件来节约编译时间
#include//include file for every supported OpenCV function
#include
#include

using namespace std;
using namespace cv;

int main(int argc, char** argv) {
     
	Mat src = imread("D:/example/pic1.png");//B(blue),G(green),R(red)三通道,取值空间都是0-256
	imshow("input", src);//只支持256位或浮点数显示,通过imread读取即是8位(8位和256位是什么)

	QuickDemo qd;
	qd.colorSpace_Demo(src);
	qd.mat_creation_demo(src);

	waitKey(0);
	destroyAllWindows();
	return 0;

}

源文件方法函数

#include


//图像色彩空间转换
void QuickDemo::colorSpace_Demo(Mat& image) {
     
	Mat gray, hsv;
	cvtColor(image, hsv, COLOR_BGR2HSV);
	//HSV三通道  H 0~180  S,V 0~255  H,S表示颜色  V确定图像亮度
	cvtColor(image, gray, COLOR_BGR2GRAY);
	imshow("HSV", hsv);
	imshow("灰度", gray);
	imwrite("D:/example/hsv.png", hsv);
	imwrite("D:/example/gray.png", gray);
}


//图像对象的创建和赋值
void QuickDemo::mat_creation_demo(Mat& image) {
     
	Mat m1, m2;
	//1.克隆
	m1 = image.clone();
	//2.复制
	image.copyTo(m2);

	//3.创建空白图像
	Mat m3 = Mat::zeros(Size(8, 8), CV_8UC3);//zeros为赋值,常用的也有ones(只在单通道时全是1),8为宽度数,8为高度数,3为通道数,8*1是显示的宽度数
	m3 = Scalar(127, 127, 127);//根据通道创建图像
	std::cout << "width:" << m3.cols << " height" << m3.rows << " channels:" << m3.channels() << std::endl;
	std::cout << m3 << std::endl;
	imshow("创建图像",m3);

	//4.赋值
	Mat m4 = m3;//m3和m4一起改变
	m4 = Scalar(0, 255, 255);
	imshow("图像",m3);


}```

你可能感兴趣的:(实验室赋予我力量,opencv,计算机视觉,c++)