【Matlab】【Color】matlab中一个“全能”颜色空间转换的程序
2014-03-17 16:10
411 查看
matlab中一个“全能”颜色空间转换的程序
转载之:http://www.bfcat.com/
"Colorspace Transformations"是一个matlab程序,可以完成多种颜色空间互相的转换,不用局限于matlab自带的RGB2Lab之类。
这个程序支持的颜色空间如下:
这种转换有什么用呢?其中一个重要的应用就是在不同的颜色空间里,图像分割问题会变得更简单。例如下面这幅图,我们想分割出中间那个黄色的辣椒
我们试着在YCbCr空间中的Cb通道进行,也就是下面这幅图
进行如下操作
结果完美的分割出了我们想要的目标。
showMaskAsOverlay是一个模板叠加显示的函数。
使用下面的程序,我们可以浏览这幅图像在各个颜色空间的样子
这为我们提供了很多可以在图像分割中利用的特征。
转载之:http://www.bfcat.com/
"Colorspace Transformations"是一个matlab程序,可以完成多种颜色空间互相的转换,不用局限于matlab自带的RGB2Lab之类。
这个程序支持的颜色空间如下:
'RGB' sRGB IEC 61966-2-1 'YCbCr' Luma + Chroma ("digitized" version of Y'PbPr) 'JPEG-YCbCr' Luma + Chroma space used in JFIF JPEG 'YDbDr' SECAM Y'DbDr Luma + Chroma 'YPbPr' Luma (ITU-R BT.601) + Chroma 'YUV' NTSC PAL Y'UV Luma + Chroma 'YIQ' NTSC Y'IQ Luma + Chroma 'HSV' or 'HSB' Hue Saturation Value/Brightness 'HSL' or 'HLS' Hue Saturation Luminance 'HSI' Hue Saturation Intensity 'XYZ' CIE 1931 XYZ 'Lab' CIE 1976 L*a*b* (CIELAB) 'Luv' CIE L*u*v* (CIELUV) 'LCH' CIE L*C*H* (CIELCH) 'CAT02 LMS' CIE CAT02 LMS
这种转换有什么用呢?其中一个重要的应用就是在不同的颜色空间里,图像分割问题会变得更简单。例如下面这幅图,我们想分割出中间那个黄色的辣椒
我们试着在YCbCr空间中的Cb通道进行,也就是下面这幅图
进行如下操作
mask = ~im2bw(img,0.24); cc = bwconncomp(mask); stats = regionprops(cc,'Area'); A = [stats.Area]; [~,biggest] = max(A); mask(labelmatrix(cc)~=biggest) = 0; mask = imfill(mask,'holes'); imshow('peppers.png') showMaskAsOverlay(0.7,mask,'c');
结果完美的分割出了我们想要的目标。
showMaskAsOverlay是一个模板叠加显示的函数。
使用下面的程序,我们可以浏览这幅图像在各个颜色空间的样子
cs = {'RGB','YCbCr','JPEG-YCbCr','YDbDr','YPbPr','YUV',... 'YIQ','HSV','HSL','HSI',... 'XYZ','Lab','Luv','LCH','CAT02 LMS'}; peppers = imread('peppers.png'); figure('color','w'); ax = tight_subplot(numel(cs),4); ind = 1; for ii = 1:numel(cs) newim = colorspace(['->' cs{ii}],peppers); if max(newim(:)) > 1 newim = newim/max(newim(:)); end axes(ax(ind)); imshow(newim,[]);title(cs{ii}); for jj = 1:3 ind = ind+1; axes(ax(ind)); imshow(newim(:,:,jj),[]);title(sprintf('%s(:,:,%i)',cs{ii},jj)); end ind = ind+1; end expandAxes(ax)
这为我们提供了很多可以在图像分割中利用的特征。
相关文章推荐
- 【OpenCV3】颜色空间转换——cv::cvtColor()详解
- 基于Tkinter利用python实现颜色空间转换程序
- RGB 颜色空间转 HSI 颜色空间的matlab程序实现
- RGB 颜色空间转 HSI 颜色空间的matlab程序实现
- OpenCV之颜色空间转换:cvtColor()函数
- python实现颜色空间转换程序(Tkinter)
- Matlab获取colorbar颜色并转换为需要的CPT文件
- opencv学习(十六)之颜色空间转换cvtColor()
- 【OpenCV学习笔记】【函数学习】五(颜色空间转换cvCvtColor()函数)
- Java 利用 ICC 色彩空间 color space profile 实现 RGB 和 CMYK 颜色的相互转换
- opencv学习(十六)之颜色空间转换cvtColor()
- 颜色空间转换:RGB转换为Lab(Matlab)
- python实现颜色空间转换程序(Tkinter)
- 【OpenCV3图像处理】颜色空间转换(二)转换函数 cvtColor()
- opencv: 颜色空间转换(cv2.cvtColor) 探究(图示+源码)
- OpenCV: 颜色空间转换 cvtColor()出错?注意浮点数精度
- 【OpenCV3】颜色空间转换——cv::cvtColor()详解
- matlab--颜色空间的转换
- 3.7 编写一个程序,以字符形式输入某进制的数字,将其转换为十进制数值并显示出
- Matlab中的color 画线的多种颜色