数字图像处理处理 大作业实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数字图像处理处理大作业实验报告

PB11210***上上签

MyZenith.N_3104_EVER 实验一题目:线性插值改变图像大小

实验目的:

1、使用MATLAB编程实现对图片大小的改变操作,使所给图片

达到所要求的效果。

2、通过对MATLAB的编程加强对图像处理的认识,初步学习MATLAB在图像处理中的基本应用

实验内容:

在这一项目中,同学们需要实现基于双线性插值的图像缩放算法。作业中需实现如下功能:

(a)能够利用鼠标从实验图像中任意选取测试区域,并单独显示。

(b)使用双线性插值算法对测试区域进行缩放处理,输出如下结果,

放大到原始分辨率的2倍,放大到原始分辨率的4倍,缩小到

原始分辨率的1/2倍。

实验原理:图像某点的值由最邻近的四个点联立方程决定。

实验代码:

1、在主函数中,使用switch函数分别调用子函数,并且之前选择

需要放大或者缩小的倍数。代码如下:

2、choice=('Yes');

3、while (minus(choice,('Yes'))==0)

4、 clear;close;

F=imread('monarch.bmp');

5、 I=imcrop(F);

6、 BR=I(:,:,1);

BG=I(:,:,2);

7、 BB=I(:,:,3);

8、 [rows,cols]=size(BR);

K = sqrt(str2double(inputdlg('ÇëÊäÈëËõ·Å±¶Êý', 'INPUT scale

factor', 1, {'2'})));

9、 width = K * rows;

10、 height = K * cols;

11、

12、

13、

14、 widthScale = rows/width;

15、 heightScale = cols/height;

16、

17、for x = 1:width-2

for y = 1:height-2

18、 X = x * widthScale;

Y = y * heightScale;

19、

20、if (X/double(uint16(X)) == 1.0) && (Y/double(uint16(Y)) == 1.0)

21、 dstBR(x,y) = BR(int16(X),int16(Y));

dstBG(x,y) = BG(int16(X),int16(Y));

22、 dstBB(x,y) = BB(int16(X),int16(Y));

23、else

24、 a = double(uint16(X));

25、 b = double(uint16(Y));

26、

27、 BRx11 = double(BR(a,b));

28、 BRx12 = double(BR(a,b+1));

29、 BRx21 = double(BR(a+1,b));

30、 BRx22 = double(BR(a+1,b+1));

31、

32、 BGx11 = double(BG(a,b));

33、 BGx12 = double(BG(a,b+1));

34、 BGx21 = double(BG(a+1,b));

35、 BGx22 = double(BG(a+1,b+1));

36、

37、 BBx11 = double(BB(a,b));

38、 BBx12 = double(BB(a,b+1));

39、 BBx21 = double(BB(a+1,b));

40、 BBx22 = double(BB(a+1,b+1));

41、

42、 w1 = (b+1-Y) * (a+1-X);

43、 w2 = (Y-b) * (a+1-X);

w3 = (b+1-Y) * (X-a);

44、 w4 = (Y-b) * (X-a);

45、 dstBR(x,y) = uint8( BRx11 * w1 + BRx12 * w2 + BRx21

* w3 + BRx22 * w4 );

46、 dstBG(x,y) = uint8( BGx11 * w1 + BGx12 * w2 + BGx21

* w3 + BGx22 * w4 );

47、 dstBB(x,y) = uint8( BBx11 * w1 + BBx12 * w2 + BBx21

* w3 + BBx22 * w4 );

48、end

49、end

50、end

51、

52、 OUT(:,:,1)=dstBR;

53、 OUT(:,:,2)=dstBG;

54、 OUT(:,:,3)=dstBB;

55、 imshow(I);

56、 figure;

57、 imshow(OUT);

58、

59、 options.Interpreter = 'tex';

60、 options.Default = 'Cancel';

61、 choice = questdlg('ÊÇ·ñ¼ÌÐø£¿','Ñ¡Ïî','Yes','No',options);

62、end

实验结果:

1、选择缩放倍数:

相关文档
最新文档