实验一 图像基本运算.docx
《实验一 图像基本运算.docx》由会员分享,可在线阅读,更多相关《实验一 图像基本运算.docx(10页珍藏版)》请在冰豆网上搜索。
![实验一 图像基本运算.docx](https://file1.bdocx.com/fileroot1/2023-1/21/d7a462c4-9384-4ce0-87b6-5d7bf515dfbf/d7a462c4-9384-4ce0-87b6-5d7bf515dfbf1.gif)
实验一图像基本运算
实验一图像基本运算
实验目的:
1.熟悉Matlab的使用和矩阵运算;
2.掌握图片的读写显示;
3.熟悉图像的算术运算。
实验内容:
1、以下两个矩阵A和B:
(1)计算A+B、A-B、A.*B、A*B、A./B和A/B。
(2)计算A&B、A|B、~A和~B。
(3)判断B中哪些元素值大于4,将其置1,其它点置0。
以上题目先自己简单计算一下,如果Matlab得到的结果和自己算的不一样,分析原因。
>>A=[100;110;001],B=[234;567;8910]
A=
100
110
001
B=
234
567
8910
(1)>>A+B
ans=
334
677
8911
>>A-B
ans=
-1-3-4
-4-5-7
-8-9-9
>>A.*B(数组乘)
ans=
200
560
0010
>>A*B(矩阵乘)
ans=
234
7911
8910
>>A./B(数组右除)
ans=
0.500000
0.20000.16670
000.1000
>>A/B(矩阵右除)
Warning:
Matrixissingulartoworkingprecision.
ans=
NaNInf-Inf
NaN-InfInf
NaNInf-Inf
(NaN表示非数,Inf表示无穷。
)
(2)>>A&B
ans=
100
110
001
>>A|B
ans=
111
111
111
>>~A
ans=
011
001
110
>>~B
ans=
000
000
000
(3)>>B>4
ans=
000
111
111
或者:
>>C=[444;444;444];
>>B>C
ans=
000
111
111
2、
(1)仿照课本例2.1(a),读入肺部图片lung.bmp,并显示出来。
(2)直接读入chest.tif并显示,效果怎样?
如何改进图片效果?
(1)>>f=imread('lung.bmp');
>>whosf
>>imshow(f)
(2)>>g=imread('chest.tif');
>>imshow(g);title('直接显示');
效果不好,动态范围较低。
改进的方法:
>>figure,imshow(g,[]);title('改进效果后');
3、仿照课本例2.5,对一幅图像进行反转,提取图像的一部分和二次取样。
反转:
>>f=imread('rose_512.tif');
>>fp=f(end:
-1:
1,:
);
>>imshow(fp)
一次取样:
>>fc=f(257:
768,257:
768);
>>imshow(fc)
二次取样:
>>fs=f(1:
2:
end,1:
2:
end);
>>imshow(fs);
隔行采集,图像缩小为原来的一半。
4、课本P30例2.6
创建一个M-file文件improd
内容如下:
function[p,pmax,pmin,pn]=improd(f,g)
fd=double(f);
gd=double(g);
p=fd.*gd;
pmax=max(p(:
));
pmin=min(p(:
));
pn=mat2gray(p);
然后在命令台键入:
>>f=[12;34],g=[12;21];
>>[p,pmax,pmin,pn]=improd(f,g)
5(提高题)、学习数字减影造影术的原理,根据给出的图片做出清晰的血管图像。
>>a=imread('angiography_live_image.tif');
>>b=imread('angiography_mask_image.tif');
>>c=imabsdiff(a,b);
>>imshow(c,[]);
实验小结:
此次实验较简单,按照书本上的步骤很很快地完成,这次使我们熟悉了Matlab的使用和矩阵运算,也掌握图片的读写显示,熟悉图像的算术运算。
知识学得较好。