记录opencv中图像的进阶操作
RGB模型中还可能会有第四个alpha通道,表示颜色的透明度,这样也就变成了RGBA模型
电视信号系统所采用的颜色编码方式。
亮度(Y)
红色分量与亮度的信号差值(U)
蓝色与亮度的差值(V)
色度(Hue)
饱和度(Saturation)
亮度(Value)
亮度(Luminosity)
a,b表示两个颜色通道,两者的取值都在-128~127
一种基于生理特征的颜色模型
只有单通道,取值为0~255,其中0表示黑色,255表示白色
常用的RGB模型转灰度图方式:
GRAY=0.3R+0.59G+0.11B
void cvtColor(InputArray src,OutputArray dst,int code,int dstCn=0)
src:待转换颜色模型的原始图像
dst:转换颜色模型后的目标图像
code:颜色空间转换的标志
dstCn:目标图像中的通道数
例举一下常用的转换参数:
标志参数作用COLOR_BGR2BGRA对RGB图像添加alpha通道COLOR_BGR2RGB彩色通道颜色顺序的更改COLOR_BGR2GRAY彩色图像转成灰度图像COLOR_GRAY2BGR灰度图像转成彩色图像(伪彩色)COLOR_BGR2YUVRGB颜色模型转成YUV颜色模型COLOR_YUV2BGRYUV颜色模型转成RGB颜色模型COLOR_BGR2HSVRGB颜色模型转成HSV颜色模型COLOR_HSV2BGRHSV颜色模型转成RGB颜色模型COLOR_BGR2LabRGB颜色模型转成Lab颜色模型COLOR_Lab2BGRLab颜色模型转成RGB颜色模型
通过一段代码来展示一下cvtColor函数的使用方法
#include
#include
#include
using namespace std;
using namespace cv;
int main()
{
Mat img = imread("lena.jpg");
if (img.empty())
{
cout << "请确认图像文件名是否正确" << endl;
return -1;
}
Mat gray, HSV, YUV, Lab, img32;
img.convertTo(img32, CV_32F, 1.0 / 255);
cvtColor(img32, HSV, COLOR_BGR2HSV);
cvtColor(img32, YUV, COLOR_BGR2YUV);
cvtColor(img32, Lab, COLOR_BGR2Lab);
cvtColor(img32, gray, COLOR_BGR2GRAY);
imshow("原图",img32);
imshow("HSV", HSV);
imshow("YUV", YUV);
imshow("Lab", Lab);
imshow("GRAY", gray);
waitKey(0);
return 0;
}
效果如下:
原图:
HSV颜色模型:
YUV颜色模型:
Lab颜色模型:
灰度图:
Original: https://blog.csdn.net/weixin_45775703/article/details/122861776
Author: 杨大熊的代码世界
Title: opencv学习笔记之图像模型
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/644803/
转载文章受原作者版权保护。转载请注明原作者出处!