• 图像分割(三)-RGB转HSV后图像分割方法


           常用彩色模型有RGB和HSV模型,有时候在RGB颜色空间进行背景分割比较困难的问题,转换为HSV模型然后对色调和饱和度图像进行处理会得到比较理想的处理结果,下面通过一个实例讲解该方法的MATLAB实现,该方法对其他图像检测也具有一定的参考价值。

    主要步骤:读入RGB彩色图像,转换为灰度图像,并进行二值化,发现背景分割效果不好。故改变思路,先将RGB彩色图像转换为HSV图像,提取H(色调)和S(饱和度)分量,发现色调分量的灰度直方图具有比较明显的双峰特性且谷底平且宽,因此对其采用OTSU方法进行二值化,然后对其进行孔洞填充,取得了比较理想的图像分割效果。最后对原始RGB彩色图像分割的主要图像处理过程进行显示。

    详细代码如下:

    %RGB图像转HSV进行图像分割

    clear all;

    close all;

    clc;

    I=imread('h:\3.jpg');

    Ir=I(:,:,1);

    Ig=I(:,:,2);

    Ib=I(:,:,3);

    imshow(I);

    Igray=rgb2gray(I);% 彩色图像转灰度图像 Gray=0.299*R+0.587*G+0.114*B

    figure,imshow(Igray);

    figure,imhist(Igray);%显示灰度直方图

    obj=im2bw(Igray,graythresh(Igray));

    figure,imshow(obj);

    Ihsv=rgb2hsv(I);

    figure,imshow(Ihsv);

    Ih=Ihsv(:,:,1);%提取hue(色调)分量

    figure,imshow(Ih);

    figure,imhist(Ih);%显示色调分量的灰度直方图-发现其具有比较明显的双峰特性且谷底平且宽

    imtool(Ih);

    Is=Ihsv(:,:,2);%提取Saturation(饱和度)分量

    figure,imshow(Is);

    figure,imhist(Is);

    imtool(Is)

    %obj=imbinarize(Ih);

    obj2=im2bw(Ih,graythresh(Ih));

    figure,imshow(obj2);

    obj2Fill=imfill(obj2,'holes');

    figure,imshow(obj2Fill);

    flower=cat(3,uint8(obj2Fill).*Ir,uint8(obj2Fill).*Ig,uint8(obj2Fill).*Ib);

    figure,imshow(flower);

    figure,

    subplot(2,4,1),imshow(I),title('RGB彩色图像');

    subplot(2,4,2),imshow(Igray),title('灰度图像');

    subplot(2,4,3),imhist(Igray),title('Igray灰度直方图');

    subplot(2,4,4),imshow(obj),title('二值图像');%分割效果差

    subplot(2,4,5),imshow(Ihsv),title('HSV图像');

    subplot(2,4,6),imshow(Ih),title('H图像');

    subplot(2,4,7),imhist(Ih),title('Ih灰度直方图');

    subplot(2,4,8),imshow(obj2Fill),title('二值图像');%分割效果好

    %本程序在MATLAB 2018a检测通过

    最后运行结果如下图所示:

    原始图像:

    如果觉得本文章对大家今后的编程有帮助,请点赞和收藏,谢谢!!!

  • 相关阅读:
    【数据结构】面试OJ题——时间复杂度
    React 注意事项
    Defensor 4.5:构建数据资产为中心的安全运营体系
    九、SpringMVC(3)
    【Python机器学习】零基础掌握EllipticEnvelope协方差估计
    用SptingBoot实现拦截器功能
    【深入设计模式】迭代器模式模式—什么是迭代器模式?
    react_14
    DSOMEIP丢数据问题分析和总结:
    Docker搭建私有镜像仓库及推送、拉取私服镜像
  • 原文地址:https://blog.csdn.net/xrgs_shz/article/details/139831790