【图像处理】MATLAB:彩色图像处理

来源:互联网 发布:淘宝买家地址查询 编辑:程序博客网 时间:2024/06/11 06:49

彩色图像处理基础

  将彩色图像处理细分为三个主要类别:(1)颜色变换即彩色映射;(2)单独彩色平面的空间处理;(3)颜色向量处理。第一类处理每个彩色平面的像素,该处理严格地以像素值为基础,而不是以它们的空间坐标为基础,类似于亮度变换处理。第二类对各个彩色平面进行空间(邻域)滤波,类似于空间滤波。第三类是以同时处理彩色图像的所有分量为基础的处理技术。因为全彩色图像至少有三个分量,彩色像素实际上是向量。

  处理彩色图像时,以独立的彩色分量为基础,以向量为基础,这两种做法的结果并不总是相同,必须满足两个条件:1. 该处理必须对向量和标量都可用;2. 对向量的每个分量的运算必须独立于其他分量。

  将灰度级转换为任意颜色的映射,这一处理常称为伪彩色变换或伪彩色映射。

z = interplq(x,y,xi);% 线性插值% 它返回一个列向量,其中值为一元线性插值函数z在点xi的对应值,% 列向量x,y确定控制点下的水平和垂直坐标,x中的元素值必须单调递增,% 向量z的长度与x的相等。z = spline(x,y,xi);% 三次样条插值% x,y,z,和xi同上,此外,若y比x多两个元素,则首个及末个输入被假定为三次样条的端滚降。g = ice('Property Name','Property Value',...);% 交互彩色编辑g = ice('image',f);g = ice('image',f,'wait','off');g = ice('image',f,'space','hsi');

代码示例

f = imread('breast_digital_Xray.tif');g = ice('image',f);

运行结果


彩色图像平滑、锐化

代码示例

f = imread('flower_rgb.tif');                           % RGB图像h = rgb2hsi(f);                                         % 转换至HSI空间H = h(:,:,1);S = h(:,:,2);I = h(:,:,3);                 % 分量w = fspecial('average',5);                              % 5×5像素的average滤波器I_filtered = imfilter(I,w,'replicate');                 % 图像大小通过复制外边界的值来扩展 h = cat(3,H,S,I_filtered);                              % 矩阵维数为3f1 = hsi2rgb(h);                                        % 转换至HSI空间f1 = min(f1,1);                                         % RGB的值在[0,1]之间lapmask = [1 1 1;1 -8 1;1 1 1];                         % 拉普拉斯模板f2 = imsubtract(f1,imfilter(f1,lapmask,'replicate'));   % 相减subplot(1,3,1);imshow(f);title('原图像');subplot(1,3,2);imshow(f1);title('彩色图像平滑');subplot(1,3,3);imshow(f2);title('彩色图像锐化');

运行结果


在RGB向量空间直接处理

此处仅作介绍,不作详解。

[VG,A,PPG] = colorgrad(f);          % 进行RGB彩色图像边缘检测 s = colorseg(method,f,T,parameters) % 进行彩色图像分割

原创粉丝点击