本介绍彩色图像到灰度图像的转换,opencv提供了cvtColor函数用于图像颜色控件转换,可以实现RGB颜色、HSV颜色、HSI颜色、lab颜色、YUV颜色等转换,也可以彩色和灰度互相转换。下面介绍cvtColor函数各个参数的功能:
void cv::cvtColor(
cv::InputArray src, // 输入序列
cv::OutputArray dst, // 输出序列
int code, // 颜色映射码
int dstCn = 0 // 输出的通道数 (0='automatic')
);
-
src,输入图像
-
dst,输出图像
-
code,转换的代码或标识,即在此确定将什么制式的图片转换成什么制式的图片
-
dstCn,目标图像通道数,如果取值为0,则由src和code决定
实现代码:
#include<iostream>
using namespace cv;
using namespace std;
void main()
{
Mat src, imgGray;
src = imread("lena.jpg");
namedWindow("src", WINDOW_NORMAL);
imshow("src", src);
cvtColor(src, imgGray, CV_BGR2GRAY);//二值化前先进行灰度转换
namedWindow("Gray image", WINDOW_NORMAL);
imshow("Gray image", imgGray);
waitKey();
}
结果:
src Gray image
如果需要其他颜色空间的转换可参考code的参数进行转换:
到此图像灰度化介绍告一段落,迎大家留言讨论,如有兴趣一起学习图像处理、计算机视觉、深度学习相关领域欢迎关注号,一起学习进步,
可以微信搜索“图像处理CV讲武堂”关注,也可如下二维扫码关注。