opencv学习笔记-2,图像颜色空间转换
一、代码
#include<opencv2/opencv.hpp>
#include<highgui.h>
#include<iostream>
using namespace cv;
using namespace std;
int main(int argc,char**argv)
{
Mat img=imread("1.jpg");
namedWindow("my picture",CV_WINDOW_AUTOSIZE);
imshow("my picture",img);
waitKey(100);
Mat grayimg;
cvtColor(img,grayimg,CV_BGR2GRAY);
namedWindow("灰度图",WINDOW_AUTOSIZE);
imshow("灰度图",grayimg);
waitKey(100);
Mat HSVimg;
cvtColor(img,HSVimg,COLOR_BGR2HSV);
namedWindow("HSVimg",WINDOW_AUTOSIZE);
imshow("HSVimg",HSVimg);
waitKey(0);
return(0);
}
二、调试结果
原图:
灰度图:
HSV图:
三、cvt_color()函数
cvtColor(InputArray src, OutputArray dst,
int
code, int
dstCn=0
)
InputArray
src:输入图像即要进行颜色空间变换的原图像
OutputArray
dst: 输出图像即进行颜色空间变换后存储图像,也可以Mat类
int code:
转换的代码或标识,即在此确定将什么制式的图片转换成什么制式的图片
int dstCn = 0:
目标图像通道数,如果取值为0,则由src和code决定
四、注意
1、在opencv中,其默认的颜色制式排列是BGR而非RGB。所以对于24位颜色图像来说,前8-bit是蓝色,中间8-bit是绿色,最后8-bit是红色。
2、将图像转换为灰度图,采用CV_前缀
将图像转换为HSV,采用COLOR_前缀