作业
实验一 常用MATLAB图像处理命令
读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内分成三个子窗口来分别显示RGB图像和灰度图像,注上文字标题
a=imread('Z:\原图\1.jpg'); subplot(2,2,1);imshow(a);title('原图'); subplot(2,2,2);imshow(rgb2gray(a));title('灰度图像'); subplot(2,2,3);imshow(im2bw(a));title('二值图像');
对两幅不同图像执行加、减、乘、除操作,在同一个窗口内分成五个子窗口来分别显示,注上文字标题
a=imresize(imread('Z:\原图\Car.jpg'),[500 500]); b=imresize(imread('Z:\原图\图像.jpg'),[500 500]); subplot(3,2,1);imshow(a);title('原图1'); subplot(3,2,2);imshow(b);title('原图2'); subplot(3,2,3);imshow(imadd(a,b));title('加'); subplot(3,2,4);imshow(imsubtract(a,b));title('减'); subplot(3,2,5);imshow(immultiply(a,b));title('乘'); subplot(3,2,6);imshow(imdivide(a,b));title('除');
对一幅图像进行灰度变化,实现图像变亮、变暗和负片效果,在同一个窗口内分成四个子窗口来分别显示,注上文字标题
a=imread('Z:\原图\1.jpg'); subplot(2,2,1);imshow(a);title('原图'); subplot(2,2,2);imshow(imadjust(a,[0 1],[0 1],0.1));title('变亮'); subplot(2,2,3);imshow(imadjust(a,[0 1],[0 1],10));title('变暗'); subplot(2,2,4);imshow(imadjust(a,[0 1],[1 0]));title('负片');
实验二 图像基本操作
调试运行4倍减采样程序,分析程序,对每条语句给出注释,并显示最终执行结果
a=imread('Z:\原图\18.jpg'); %加载图片 b=rgb2gray(a); %灰度 [wid,hei]=size(b); %图片大小 quartimg=zeros(wid/2+1,hei/2+1); %用于存放结果 i1=1; j1=1; for i=1:2:wid for j=1:2:hei quartimg(i1,j1)=b(i,j); %每隔一个像素取一个像素保存到结果矩阵中 j1=j1+1; end i1=i1+1; j1=1; end figure %创建一个用来显示图形输出的一个窗口 imshow(uint8(quartimg)) %把结果限制在255以内并显示图像
显示一幅灰度图像a,改变图像亮度使其整体变暗得到图像b,显示两幅图像的直方图
a=rgb2gray(imread('Z:\原图\1.jpg')); b=imadjust(a,[,],[0;0.5]); subplot(2,2,1);imshow(a);title('原图'); subplot(2,2,2);imhist(a);title('原图直方图'); subplot(2,2,3);imshow(b);title('变暗'); subplot(2,2,4);imhist(b);title('变暗直方图');
对图像b进行直方图均衡化,显示结果图像和对应直方图
c=histeq(b); subplot(2,2,1);imshow(b);title('原图'); subplot(2,2,2);imhist(b);title('原图直方图'); subplot(2,2,3);imshow(c);title('均衡化'); subplot(2,2,4);imhist(c);title('均衡化直方图');
读入图像c,执行直方图规定化,使图像a的灰度分布与c大致相同,显示变换后图像及对应直方图
c=imread('Z:\原图\兔兔.jpg'); [cc,x]=imhist(c); d=histeq(a,cc); subplot(2,2,1);imshow(a);title('原图'); subplot(2,2,2);imhist(a);title('原图直方图'); subplot(2,2,3);imshow(d);title('规定化'); subplot(2,2,4);imhist(d);title('规定化直方图');
实验三 图像变换
对一幅图像进行缩小,显示原始图像与处理后图像,分别对其进行傅里叶变换,显示变换后结果,分析原图的傅里叶谱与平移后傅里叶频谱的对应关系
a=imread('Z:\原图\1.jpg'); b=imresize(a,0.5); imfreqdomain=@(x) imshow(fftshift(log(1+abs(fft2(rgb2gray(x))))),[]); subplot(2,2,1);imshow(a);title('原图'); subplot(2,2,2);imfreqdomain(a);title('原图傅里叶谱'); subplot(2,2,3);imshow(b);title('缩小'); subplot(2,2,4);imfreqdomain(b);title('缩小傅里叶谱');
对一幅图像进行旋转,显示原始图像与处理后图像,分别对其进行傅里叶变换,显示变换后结果,分析原图的傅里叶谱与旋转后傅里叶频谱的对应关系
a=imread('Z:\原图\1.jpg'); b=imrotate(a,45,'bilinear'); imfreqdomain=@(x) imshow(fftshift(log(1+abs(fft2(rgb2gray(x))))),[]); subplot(2,2,1);imshow(a);title('原图'); subplot(2,2,2);imfreqdomain(a);title('原图傅里叶谱'); subplot(2,2,3);imshow(b);title('旋转'); subplot(2,2,4);imfreqdomain(b);title('旋转傅里叶谱');