opencv学习笔记之图像模型

记录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/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球