美文网首页
8、彩色图像处理

8、彩色图像处理

作者: sumpig | 来源:发表于2019-03-29 11:01 被阅读0次

1、MATLAB中彩色图像的表示

RGB图像

令 fR、fG、fB 分别表示三幅 RGB 分量图像。一幅 RGB 图像就是使用 cat 运算符通过堆叠这些分量图像形成的:

rgb_image = cat(3, fR, fG, fB);

下面命令提取三幅分量的图像:

fR = rgb_image(:, :, 1);
fG = rgb_image(:, :, 2);
fB = rgb_image(:, :, 3);

索引图像

索引图像有两个分量:一个整数数据矩阵 X 和一个彩色映射矩阵 map。
map 是一个大小为 m x 3 的 double 类数组,其值是区间 [0, 1] 上的浮点数。map 的长度 m 等于其定义的颜色数。map 的每一行指定单一颜色的红、绿、蓝分量。

显示一幅索引图像:

imshow(X, map)
% or
image(X)
colormap(map)

处理 RGB 和索引图像的函数

dither 采用抖动从 RGB 图像创建索引图像
grayslice 采用阈值处理从灰度图像创建索引图像
gray2ind 从灰度图像创建索引图像
ind2gray 从索引图像创建灰度图像
rgb2ind 从 RGB 图像创建索引图像
ind2rgb 从索引图像创建 RGB 图像
rgb2gray 从 RGB 图像创建灰度图像

语法

bw = dither(gray_image);

X = grayslice(gray_image, n);

[X, map] = gray2ind(gray_image, n);

gray_image = ind2gray(X, map);

[X, map] = rgb2ind(rgb_image, n, dither_option, 8);

rgb_image = ind2rgb(X, map);

gray_image = rgb2gray(rgb_image)

2、彩色空间转换

NTSC

NTSC 彩色制式用于模拟电视,其灰度信息和彩色数据是分离的。

yiq_image = rgb2ntsc(rgb_image)

rgb_image = ntsc2rgb(yiq_image)

YCbCr

YCbCr 彩色空间广泛用于数字视频中,亮度信息用单个分量 Y 表示,彩色信息存储为两个色差分量 Cb 和 Cr。

ycbcr_image = rgb2ycbcr(rgb_image)

rgb_image = ycbr2rgb(ycbcr_image)

HSV

HSV (色调、饱和度、数值)

hsv_image = rgb2hsv(rgb_image)

rgb_image = hsv2rgb(hsv_image)

CMY、CMYK

青色、深红色、黄色是光的二次色。大多数将颜料淀积于纸上的设备,如彩色打印机和复印机,要求输入 CMY 数据。

cmy_image = imcomplement(rgb_image)

rgb_image = imcomplement(cmy_image)

HSI

HSI(色彩,饱和度,强度)模型是开发基于彩色描述的图像处理算法的一种理想工具。

% rgb2hsi
function hsi = rgb2hsi(rgb)
rgb = im2double(rgb);
r = rgb(:, :, 1);
g = rgb(:, :, 2);
b = rgb(:, :, 3);

num = 0.5*((r-g)+(r-b));
den = sqrt((r-g).^2+(r-b).*(g-b));
theta = acos(num./(den+eps));

H =theta;
H(b > g) = 2*pi - H(b > g);
H = H/(2*pi);

num = min(min(r, g), b);
den = r+g+b;
den(den == 0) = eps;
S = 1 - 3.*num./den;

H(S == 0) = 0;
I = (r+g+b)/3;

hsi = cat(3, H, S, I);
% hsi2rgb
function rgb = hsi2rgb(hsi)
H = hsi(:, :, 1) * 2 * pi;
S = hsi(:, :, 2);
I = hsi(:, :, 3);

R = zeros(size(hsi, 1), size(hsi, 2));
G = zeros(size(hsi, 1), size(hsi, 2));
B = zeros(size(hsi, 1), size(hsi, 2));

idx = find((0 <= H) & (H < 2*pi/3));
B(idx) = I(idx) .* (1-S(idx));
R(idx) = I(idx) .* (1+S(idx) .* cos(H(idx)) ./ cos(pi/3 - H(idx)));
G(idx) = 3*I(idx) - (R(idx) + B(idx));

idx = find((2*pi/3 <= H) & (H < 4*pi/3));
R(idx) = I(idx) .* (1-S(idx));
G(idx) = I(idx) .* (1+S(idx) .* cos(H(idx) - 2*pi/3) ./ cos(pi - H(idx)));
B(idx) = 3*I(idx) - (R(idx)+G(idx));

idx = find((4*pi/3 <= H) & (H < 2*pi));
G(idx) = I(idx) .* (1-S(idx));
B(idx) = I(idx) .* (1+S(idx) .* cos(H(idx) - 4*pi/3) ./ cos(5*pi/3 - H(idx)));
R(idx) = 3*I(idx) - (G(idx)+B(idx));

rgb = cat(3, R, G, B);
rgb = max(min(rgb, 1), 0);

与设备无关的彩色空间(略)

  • CIE 和 sRGB 彩色空间转换

  • ICC 彩色剖面

3、彩色变换

自定义函数 ice(交互颜色编辑)(略)

4、彩色图像的空间滤波

彩色图像平滑

概念上,使用一个线性空间滤波器来平滑一幅 RGB 图像的步骤如下:

1、抽取三幅分量图像:

fR = rgb_image(:, :, 1);
fG = rgb_image(:, :, 2);
fB = rgb_image(:, :, 3);

2、分别对每幅分量图像滤波

fR_filtered = imfilter(fR, w, 'replicate');
fG_filtered = imfilter(fG, w, 'replicate');
fB_filtered = imfilter(fB, w, 'replicate');

3、重建滤波后的 RGB 图像

fc_filtered = imfilter(fc, w, 'replicate');

彩色图像锐化

步骤与平滑相同

示例

lapmask = [1 1 1; 1 -8 1; 1 1 1];
fb = tofloat(fb);
fen = fb - imfilter(fb, lapmask, 'replicate');

5、直接在 RGB 向量空间处理

使用梯度进行彩色边缘检测

自定义函数 colorgrad (待补充)

在 RGB 向量空间中进行图像分割

自定义函数 colorseg(待补充)

相关文章

  • 8、彩色图像处理

    1、MATLAB中彩色图像的表示 RGB图像 令 fR、fG、fB 分别表示三幅 RGB 分量图像。一幅 RGB ...

  • Task03 彩色空间互转

    Datawhale 计算机视觉基础-图像处理(上)-Task03 彩色空间互转 3.1 简介 图像彩色空间互转在图...

  • 数字图像处理复习(四)

    伪彩色图像处理 伪彩色增强:将图像中的黑白灰度等级变成不同的彩色,如果分层越多,人眼所能提取的信息也就越多,从而达...

  • 04图片颜色反转

    包括 灰度/彩色 图像颜色反转 1、灰度图像反转 2、彩色图像反转

  • python 伪彩色(JET映射)图片转成深度图,解决伪彩色图被

    1.输入是经过Jet处理的伪彩色图像,输出是深度图 2.有时候伪彩色图像经过编码等会破坏原来的映射关系,直接用上述...

  • Kaggle Blog里的新知

    Diabetic Retinopathy 处理彩色图像时,对所有点减去局部平均色,降低光照的影响 Kaggle做了...

  • 35. 颜色反转

    本文解释灰度/彩色图像的颜色反转 灰度图像反转 效果如下: 彩色图像反转 效果如下:

  • LabVIEW彩色图像分割(基础篇—14)

    基于目标颜色的彩色图像分割常包括色彩阈值处理(Color Threshold)和色彩分割(Color Segmen...

  • matlab图像数据的读取总结

    Matlab 读取彩色图像是三维数组,图像的坐标是以左上角为(0,0)点; matlab读入图像的数据是uint8...

  • 图像算法系列

    图像算法专题 彩色图像分割专题 彩色图像分析软件 ColorImgSft V1.0.1.0 织物疵点检测机器视觉系...

网友评论

      本文标题:8、彩色图像处理

      本文链接:https://www.haomeiwen.com/subject/omgguqtx.html