2024-7自编数字图像处理实验-参考答案(3)

2025-11-09

(3) J=I*0.22+60; (4)J=I*0.68+60;

(5)J=I*0.43+30; (6) J=I*0.43+100;

(2)、任选一副图像或下图进行点运算,实现图像变亮、变暗和负片效果,在同一个窗口内分成四个子窗口来分别显示,注上文字标题。

图2.10 例图 参考程序如下:

mei=imread('mei.jpg');

J=mei*0.43+100; K=mei*0.43+30; Z=255-mei;

subplot(1,4,1),imshow(mei); subplot(1,4,2),imshow(J); subplot(1,4,3),imshow(K); subplot(1,4,4),imshow(Z);

2、代数运算 (1)、选取两幅大小相同的灰度图像A,B,或将不同大小的图像截取成相同大小后,将两幅图像执行加法运算得到C。 (2)、选取以上相加后的图像C作为源图像,将该混合图像与背景图像A或B做减法,显示结果。 (3)、选取一副灰度图像A,设置一个掩模模板B,需要保留的区域,图像值为1,而在需要被抑制的区域,则设为0,完成A.*B,显示结果。 提示:模板构造时,大小与源图像一致,如:B=zeros(256,256);B(40:200,40:200)=1,就构成一个模板。

根据以上结果,分析图像加法,减法,乘法运算的应用特点 (1)、

I=imread('A.jpg'); J=imread('B.jpg'); K=imadd(I,J);

subplot(1,3,1),imshow(I);title(‘原图1’); subplot(1,3,2),imshow(J); title(‘原图2’); subplot(1,3,3),imshow(K); title(‘相加’) 结果如下:

(2)、相减 %K为上题图

I=imread('A.jpg'); J= imsubtract(K,I);

subplot(1,3,1),imshow(I);title(‘原图1’); subplot(1,3,2),imshow(K); title(‘相加图’); subplot(1,3,3),imshow(J2); title(‘相减后图’)

3、几何运算 (1)、对任意一幅图像调用imresize函数,分别实现对原图的2倍比例放大,0.8倍比例缩小,非比例放大和缩小(人为定义调整后的图像长宽尺寸),并分别显示结果,对比分析不同的插值方法效果。

参考程序如下:

A=imread(‘lena.jpg’);%假设原图为256*256 B=imresize(A,2);%2倍放大 C=imresize(A,0.8);%0.8倍缩小

D=imresize(A,[300 300]);%非比例放大到300*300 E=imresize(A,[200 200]);%非比例缩小到200*200

%在以上几条语句的基础上,也可在Imresize后面添上一个参数method,指明插值方式,如’nearest’,’bilinear’,’bicubic’ subplot(2,2,1),imshow(B),title(‘放大2倍’) subplot(2,2,2),imshow(C),title(‘0.8倍缩小’) subplot(2,2,3),imshow(D),title(‘非比例放大’) subplot(2,2,4),imshow(E),title(‘非比例缩小’) (2)、任选一副图像,使用imrotate函数,分别顺时针60度,逆时针90度旋转,选择裁剪性旋转或非裁剪性旋转,在同一个窗口中显示处理后的图像。 参考程序如下:

I=imread(‘hua.jpg’);

J11=imrote(I,-60,’bilinear’);%顺时针旋转60度,非裁剪型旋转 J12=imrote(I,-60,’bilinear’,‘crop’);%顺时针旋转60度,裁剪型旋转 J21=imrote(I,90,’nearest’);%逆时针旋转90度,非裁剪型旋转 J22=imrote(I,90,’nearest’,‘crop’);%逆时针旋转90度,裁剪型旋转

subplot(2,2,1),imshow(J11),title(‘放大2倍’) subplot(2,2,2),imshow(J12),title(‘0.8倍缩小’) subplot(2,2,3),imshow(J21),title(‘非比例放大’) subplot(2,2,4),imshow(J22),title(‘非比例缩小’) 显示结果如下:

(3)、任选一幅图像,调用imcrop对该图片进行剪裁,显示处理后的图像。 I=imread(‘hua.jpg’); J=imcrop;

subplot(2,1,1),imshow(I);title(‘原图’); subplot(2,1,2),imshow(J);title(‘剪裁后图’); (4)、任选一幅图像,编程实现该图像的平移和镜像(选作)。

?x'??10x0??x?

?'???x'?x?x0???y? y?01y即:???0???? ?1??001??1??y'?y?y0??????

参考程序如下:

function [I]=hmove(i,x0,y0);

%编写实现图像平移的函数hmove,平移量为x0,y0,平移前图像矩阵为i, [r,c]=size(i);

I(r+x0,c+y0)=0; %平移后图像矩阵为I for x=1:r;

for y=1:c; x1=x+x0; y1=y+y0;

I(x1,y1)=i(x,y); end; end; 主程序:

RGB=imread(‘hua.jpg’); subplot(2,2,1)

imshow(RGB),title(‘原图’) subplot(2,2,2)

gray1=rgb2gray(RGB);title(‘灰度图’) imagesc(gray1),colormap(gray); subplot(2,2,3)

I1=hmove(gray1,100,20);title(‘平移图’) subimage(gray1),axis('image');

subplot(2,2,4),imagesc(I1),colormap(gray),axis([1,700],[1,820]); 镜像

沿纵轴翻转,水平镜像:a(x,y) = -x; b(x,y) = y;

沿横轴翻转,垂直镜像:a(x,y) = x; b(x,y) = -y; 对于实际的图像来说,即将图像的左右或上下翻转, 程序如下:

I0=imread(‘hua.jpg’); I=rgb2gray(I0); [r,c]=size(I); I1=zeros(r,c); %水平镜像

I1(1:r,1:c)=I(1:r,c:1); %垂直镜像

I1(1:r,1:c)=I(r:1,1:c);

(5)、了解用imtransform和maketform函数实现各种空间变换的方法。 演示一下程序:

仿射变换,可以用以下函数来描述:

,其中,A是变形矩阵,b是平移矩阵。

尺度变换:

CLF;I=checkerboard(20,2);


2024-7自编数字图像处理实验-参考答案(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:三年级语文教案-小学语文三年级下册教材简介 精品

相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219