matlab图片处理基本知识,Matlab图像处理基础知识
Matlab图像处理基础知识
Matlab的图片以矩阵的形式存储,矩阵的行列值为图片的行列的色彩值。
1图像表达方式:
像素索引
图像被视为离散单元。如使用I(2,2)可以获取第二行第二列的像素值

空间位置:
使用连续值,数据存储位置为坐标中点,存储位置可以非默认

A=magic(5);
x=[19.5,23.5];
y=[8.0,12.0];
生成图像A,并设置其X轴数据为x、Y轴数据为y;随后调整坐标范围使其与数据范围一致;应用色图映射函数jet,并将其划分为25个颜色等级;通过参数指定图像的横纵坐标位置及对应的颜色值;设置图像的显示范围和比例;查看或调整当前所使用的色图。

2Malatb图像类型:
二进制图
像素的取值只有0和1,分别代表黑与白。
索引图(伪彩色)
在索引图中某一像素的位置所对应的值能够反映调色板上主要存在的255种颜色之一,在这种情况下,默认情况下调色板的整体尺寸设定为256×3个单位。如果某像素的索引值确定为5,则表示该像素的颜色由调色板第5行中的三个数值共同决定。
灰度图
在灰度图中,每个像素点的值从0到255对应由暗到浅的255种色调。该图像仅能呈现灰度效果。
RGB图(真彩色)
matlab处理中的n×m×3多维数组被定义为其第一和第二维度分别对应图像中的像素行和列位置;其第三维度由三个数值构成,对应RGB颜色通道.
RGB=reshape(ones(64,1)*reshape(jet(64),1,192),[64,64,3]);
R=RGB(:,:,1);
G=RGB(:,:,2);
B=RGB(:,:,3);
figure
subplot(141);imshow(R)
subplot(142);imshow(G)
subplot(143);imshow(B)
使用 subplot 函数绘制 1x4 的网格图并显示 RGB 图像%其中 reshape 操作用于重构数组以适应显示需求。从 jet 色彩图(64)中分离出 RGB 颜色分量%该 RGB 参数包含来自 jet(64) 中的全部 64 种颜色分量。其中第三维的第一、二、三维元素分别对应 R、G、B 数值

3Matlab图像类型转换:
图像颜色筛选转换
基于筛选算法的处理流程中,使用指定的颜色图map对输入的RGB真彩色图像进行转换得到索引色图像X;数学表达式为X=dither(RGB,map)
X = dither(RGB,map,Qm,Qe) 并进一步设置在每个颜色通道上使用逆向色图设定的量化位数 Qm 以及用于计算该颜色空间误差的量化位数 Qe
BW = dither(I) 通过抖动将灰度图像 I 转换为二值(黑白)图像 BW。
asahi=imread('asahi.jpg');
imshow(asahi)%map=jet(255);%asahi_dither=dither(asahi,map);%imshow(asahi_dither)
原图:

筛选转换
asahi=imread('asahi.jpg');%imshow(asahi)
map=jet(255);
asahi_dither=dither(asahi,map);
imshow(asahi_dither)

灰度图转换为索引图:
[X, map] = gray2ind(I, n): 通过指定灰度级数n以及颜色图map将图像I转换成对应的灰度图X,默认情况下n取值为64
索引图转换为灰度图:
通过调用函数ind2gray将索引图X转换为灰度图I,并舍去图像的色调与明度信息,仅保留亮度信息。
RGB图转换成灰度图:
X=imread('asahi.jpg');
imshow(rgb2gray(X))

RGB图转换成索引图:
通过基于Q种量化颜色的最小方差量化法并采用随机扰动技术,在调用rgb2ind(RGB,Q)函数后实现了RGB图像到索引图像X的转换过程,并形成了关联颜色图cmap。
通过均匀量化法并结合噪声处理[X,cmap] = \texttt{rgb2ind}(RGB, tol)生成对应的索引图像[X, cmap]
X = rgb2ind(RGB,inmap) 采用逆色图算法并加入微小抖动以实现RGB图像转为索引图像的过程,并指定的颜色映射为inmap。
___ = rgb2ind(___,dithering) 启用或禁用抖动。
[Y,map]=rgb2ind(imread('asahi.jpg'),12);
figure
imagesc(Y)
colormap(map)
imshow(Y,map)

索引图转换成RGB图:
RGB=ind2rgb(X,map):将矩阵X及相应的调色板map转换成真彩色图像RGB
阈值法从灰度图产生索引图:
X=grayslice(I,n):将灰度图均匀量化为n个等级,转换成伪彩色图像X
将矩阵转换成灰度图像:
mat2gray函数
I=mat2gray(X,[Xmin,Xmax]):指定区间Xmin-Xmax代表灰度0-1
