您的位置:首页 > 编程语言 > MATLAB

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

2017-10-19 00:01 99 查看

彩色图像处理基础

  将彩色图像处理细分为三个主要类别:(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);                              % 矩阵维数为3
f1 = 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
c2f6
(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) % 进行彩色图像分割
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: