MATLAB图象处理函数
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MATLAB图象处理函数
1. 图象文件处理
I=imread(filename)_______读入图象文件到内部矩阵图象变量(以后简称图象)
imwrite(I,filename)_______将指定图象写到磁盘的图象文件(以后简称图象文件)上imfinfo(filename)_______显示图象文件的信息
2. 图象显示
2.1 基本显示
imshow filename______直接在当前窗口显示图象文件
imshow(I)______在当前窗口显示指定图象
rgb = getimage______将当前窗口显示的图象读入到矩阵图象变量
2.2 多幅图象的显示
figure;imshow(I,map)______在新的图象窗口上显示指定图象(多幅图象显示在不同的图象窗口上)
subplot(m,n,p);imshow(I,map)____在图象窗口的指定位置上显示指定图象(多幅图象显示在同一个图象窗口上)[会因不同图象的map不同而用完系统颜色导致显示出错(尤
其是8bit显示系统上)]
subplot(m,n,p);subimage(I,map)____在图象窗口的指定位置上显示指定图象(多幅图象显示在同一个图象窗口上)[subimage先将图象转化为RGB图象然后再显示,因而不同
图象的map不同而用完系统颜色导致显示出错]
2.3 图象显示的放大和缩小
(1)用图象窗口的工具按钮实现[略]
(2)用命令窗口的函数实现
zoom on______允许进行放大和缩小
zoom in______对图象进行放大
zoom out_____对图象进行缩小
zoom off_____禁止进行放大和缩小
3. 图象的运算
Z = imabsdiff(X,Y) _____求两图象差的绝对值
Z = imadd(X,Y) _____图象相加
IM2 = imcomplement(IM) _____求图象的补
Z = imdivide(X,Y) _____两图象对应象素相除或图象除以常数
Z = imlincomb(K1,A1,K2,A2,...,Kn,An) _____计算一系列图象的线性组合图象
Z = immultiply(X,Y) _____两图象对应象素相乘或图象乘以常数
Z = imsubtract(X,Y) _____图象相减
4. 图象处理
在MA TLAB中,图象是以矩阵的形式存放的,二值图象、灰度图象和索引(Indexed)图象用二维矩阵存放,彩色(RGB)图象用三维矩阵存放。前一类图象可以通过双下标访问图象
的象素,如I(i,j),彩色(RGB)图象可以通过三下标访问图象的象素,如I(i,j,k),k=1,2,3分别表示R、G和B三个彩色分量。
4.1 图象直方图
imhist(I)_______绘制指定图象变量的直方图到当前窗口
I1=histeq(I)_______求指定图象的直方图均衡化图象
4.2 图象的灰度变换
J = imadjust(I,[low_in high_in],[low_out high_out])______调整图象的灰度范围
level = graythresh(I)_______求图象的全局门限以便对图象进行二值化处理
BW = im2bw(I,level)[BW = im2bw(X,map,level),BW = im2bw(RGB,level)]_____按指定的门限将指定图象I转化为二值图象。
4.3 图象的格式转换
I2=im2double(I1)_____将图象转换为双精度格式
I2=im2uint8(I1)_____将图象转换为8比特字节格式
I2=im2uint16(I1)_____将图象转换为16比特字格式
4.4 多帧图象的处理
Im=cat(4,I1,I2,I3,…)______将多幅图象I1,I2,I3,…在第4维上合成一个多帧图象Im (cat为矩阵连接函数,cat(2,A,B) 等价于[A,B],cat(1,A,B) 等价于[A;B])
Frm3 = Im(:,:,:,3)_________取多帧图象Im的第3幅图象(可用于赋值、显示)
Imshow(Im(:,:,:,3))________显示多帧图象Im的第3幅图象
montage(Im)_______同时显示多帧图象Im的各幅图象(按列方式组成一个近似正方型)
mov = immovie(Im)_____将多帧图象Im转化为电影图象mov
movie(mov)_____显示电影图象mov
===================== 例=========================
The following example loads mri.tif and displays the third frame.
% Initialize an array to hold the 27 frames of mri.tif
mri = uint8(zeros(128,128,1,27));
for frame=1:27 % Read each frame into the appropriate frame in memory
[mri(:,:,:,frame),map] = imread('mri.tif',frame);
end
imshow(mri(:,:,:,3),map);
================================================
4.5 图象的几何变换
4.5.1图象尺寸变换
B = imresize(A,m,method)_____将图象A放大(m>1.0)或缩小(0 B = imresize(A,[mrows ncols], method) _____将图象A变换为mrows行ncols列的图象 B = imresize(...,method,n) _____用nX n模板完成上述几何变换插补中的滤波 B = imresize(...,method,h) _____用指定的模板h完成上述几何变换插补中的滤波 method: 一个可选的参数,决定几何变换插补的方法,可取值如下: 'nearest' (default) uses nearest neighbor interpolation.