首页 > 其他分享 >第十一章 图像的色彩空间转换

第十一章 图像的色彩空间转换

时间:2024-09-22 22:23:44浏览次数:10  
标签:redback 第十一章 image mask 像素 hsv 图像 色彩 255

知识点

-RGB色彩空间

-Hsv色彩空间

-YUV色彩空间

-YCrCb色彩空间

API知识点

-色彩空间转换cvtColor

-提取指定色彩范围区域inRange



void  QUickdemo::inrange_demo(Mat& image)
{
    Mat hsv;
    cvtColor(image, hsv, COLOR_BGR2HSV);--首先转化为hsv色彩图像
    Mat mask;
    inRange(hsv, Scalar(35,43,46), Scalar(77,255,255), mask);--

• hsv是输入的 HSV 格式的图像。

• Scalar(35, 43, 46)是颜色范围的下限。这里分别对应 H(色相)、S(饱和度)、V(明度)三个通道的值。

• Scalar(77, 255, 255)是颜色范围的上限。同样对应 H、S、V 三个通道。

• mask是输出的二值图像,即掩码。在这个掩码图像中,像素值只有 0(黑色)和 255(白色)。如果输入图像中某个像素的 HSV 值在给定的上下限范围内,那么在掩码图像中对应位置的像素值为 255(白色),否则为 0(黑色)。

    namedWindow("通道混合", WINDOW_FREERATIO);
    imshow("通道混合",mask);

}



void  QUickdemo::inrange_demo(Mat& image)
{
    Mat hsv;
    cvtColor(image, hsv, COLOR_BGR2HSV);
    Mat mask;
    inRange(hsv, Scalar(35,43,46), Scalar(77,255,255), mask);
    namedWindow("通道混合", WINDOW_FREERATIO);
    imshow("通道混合",mask);
    Mat redback = Mat::zeros(image.size(), image.type());
    redback = Scalar(40,40,200);


    bitwise_not(mask, mask);
    imshow("mask", mask);


    image.copyTo(redback, mask);
    imshow("roi区域提取", redback);


}

在image.copyTo(redback, mask);这一步中,其作用机制如下:

copyTo函数会检查掩码mask中的每个像素。如果像素值为非零(这里白色像素值为 255,被视为非零),那么就将输入图像image中对应位置的像素值复制到目标图像redback中的相同位置。如果掩码中的像素值为零(黑色),则目标图像redback中对应位置的像素值保持不变。

因为一开始mask中人物部分是白色,背景是黑色。而redback是全红色的图像。所以当执行copyTo时,在mask为白色的位置,会把原图中的人物像素复制过来,覆盖掉原来的红色像素,而在mask为黑色的位置,redback中的红色像素保持不变,从而实现了将原图的人物放到白色的位置,同时保留红色背景在其他位置的效果。

个人理解,如有问题,请多指正

标签:redback,第十一章,image,mask,像素,hsv,图像,色彩,255
From: https://blog.csdn.net/2301_79164062/article/details/142427632

相关文章

  • [OpenCV] 数字图像处理 C++ 学习——16直方图均衡化、直方图比较 详细讲解+附完整代码
    文章目录前言1.直方图均衡化的理论基础(1)什么是直方图(2)直方图均衡化原理(3)直方图均衡化公式2.直方图比较理论基础(1)相关性(Correlation)——HISTCMP_CORREL(2)卡方(Chi-Square)——HISTCMP_CHISQR(3)十字交叉性(Intersection)——HISTCMP_INTERSECT(4)巴氏距离......
  • OpenCV(图像对比度)
    目录1.图像对比度2.对比度调整的原理3.示例4.调整对比度的效果1.图像对比度图像对比度是指图像中亮部和暗部之间的差异程度。对比度越高,亮区更亮,暗区更暗;对比度低时,亮区和暗区的差异不明显,图像显得平淡。2.对比度调整的原理图像对比度可以通过线性变换实现,公式如下:......
  • OpenCV(图像明度)
    目录1.图像明度(Brightness)2.明度调整的原理3.示例1.图像明度(Brightness)明度(Brightness)是图像中反映光亮程度的一个属性,通常用于描述像素的亮度水平。对于RGB图像,明度(Luminance)每个像素中红、绿、蓝通道的加权和。\[\text{Luminance}=0.299\timesR+0.587\timesG......
  • Opencv边界填充、图像数值、图像融合与形态学运算处理方法
     首先导入库和图片,图片根据自己的路径修改importnumpyasnpimportcv2importmatplotlib.pyplotasplt%matplotlibinline#readimg1andimg2img1=cv2.imread(r'material\b.png')img2=cv2.imread(r'material\a.png')img3=cv2.imread(r'material......
  • 智能图像水位识别监测系统
    智能图像水位识别监测系统利用两岸已有的监控摄像头对河道江河湖泊等区域进行实时监测,当智能图像水位识别监测系统监测到水位刻度尺超标时立即抓拍告警同步回传给后台监控平台方便人员及时处理。水位起伏变化,水利水灾往往系于一线之间。智能图像水位识别监测系统现实意义价值重大......
  • 高等数学 3.6 函数图像的描绘
    利用导数描绘函数图形的一般步骤如下:(1)确定函数\(y=f(x)\)的定义域及函数所具有的某些特性(如奇偶性、周期性等),并求出函数的一阶导数\(f^{'}(x)\)和二阶导数\(f^{''}(x)\);(2)求出一阶导数\(f^{'}(x)\)和二阶导数\(f^{''}(x)\)在函数定义域内的全部零点,并求出函数\(f(x)......
  • OpenCV(图像饱和度)
    目录1.图像饱和度2.调整饱和度的基本原理3.示例3.1对RGB图像进行饱和度的调整。3.2对RGB图像进行饱和度的调整。4.调整饱和度的影响1.图像饱和度饱和度(Saturation)指的是颜色的纯度或浓度,决定了颜色的鲜艳程度。高饱和度的颜色看起来更加鲜艳,而低饱和度的颜色则显得......
  • 数字图像面积计算一般方法及MATLAB实现
    一、引言     在数字图像处理中,经常需要获取感兴趣区域的面积属性,下面给出图像处理的一般步骤。1.读入的彩色图像 2.将彩色图像转化为灰度图像  3.灰度图像转化为二值图像 4.区域标记5.对每个区域的面积进行计算和显示二、程序代码%面积计算clearall; %......
  • 如何使用 HTML 和 CSS 使图像在悬停时旋转
    图像上的悬停旋转效果可以使您的内容更具吸引力和互动性。在本教程中,我们将引导您了解如何仅使用html和css创建简单但引人注目的悬停旋转效果。如何创造效果html:首先,添加以下html代码:<figureclass="hover-rotate">@@##@@</figure>登录后复制您可以添加任何......
  • 第152期 利用光谱和图像数据,揭开苹果叶片病虫害之谜(目标检测)
    亲爱的读者们,您是否在寻找某个特定的数据集,用于研究或项目实践?欢迎您在评论区留言,或者通过公众号私信告诉我,您想要的数据集的类型主题。小编会竭尽全力为您寻找,并在找到后第一时间与您分享。一、引言苹果作为全球广泛种植的水果之一,在中国拥有庞大的种植面积和总产量。然而,随着......