cvtColor-色彩空间进行转换
imwrite-图片保存
opencv 提供了cvtColor()函数,用于在图像中不同的色彩空间进行转换,用于后续处理。在使用cvtColor之前首先需要了解下基本的图像色彩模式,色彩模式决定了打印或显示的图片颜色。
CV_<bit_depth>(S|U|F)C<number_of_channels>
-
1--bit_depth---比特数---代表8bite,16bites,32bites,64bites---举个例子吧--比如说,如
-
如果你现在创建了一个存储--灰度图片的Mat对象,这个图像的大小为宽100,高100,那么,现在这张
-
灰度图片中有10000个像素点,它每一个像素点在内存空间所占的空间大小是8bite,8位--所以它对
-
应的就是CV_8
-
2--S|U|F--S--代表---signed int---有符号整形
-
U--代表--unsigned int--无符号整形
-
F--代表--float---------单精度浮点型
-
3--C<number_of_channels>----代表---一张图片的通道数,比如:
-
1--灰度图片--grayImg---是--单通道图像
-
2--RGB彩色图像---------是--3通道图像
-
3--带Alph通道的RGB图像--是--4通道图像
定义一个头文件:(以后还有很多function、可以全放此类中)
class QuickDemo {
public:
void colorSpace_Demo(Mat& image); //色彩空间转换
}
调用函数如下:
void QuickDemo::colorSpace_Demo(Mat& image) {
Mat gray, hsv; //定义两个Mat
cvtColor(image, hsv, COLOR_BGR2HSV); //HSV
cvtColor(image, gray, COLOR_BGR2GRAY); //GRAY
imshow("HSV", hsv);
imshow("灰度", gray);
//保存
imwrite("E:/opencv452/in_img/hsv.png", hsv);
imwrite("E:/opencv452/in_img/gray.png", gray);
}
MAIN
Mat src = imread("E:/opencv452/img/1.jpg");
QuickDemo demo; //定义类函数
demo.colorSpace_Demo(src); //调用public类里的colorSpace_Demo函数
waitKey(); //延时函数
destroyAllWindows(); //关闭窗口:关闭窗口、取消分配任何相关的内存使用
return 0;
运行
保存成功
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)