图像处理计算机作业.doc
文本预览下载声明
第一章 上机作业
使用函数读取图像lena512_gray.bmp,存取到矩阵中
clear;
A=imread(lena512_gray.bmp);
B=imread(lena512_color.bmp);
C=rgb2gray(B);
figure(1);subplot(1,2,1);imshow(A);title(读取灰度图像);subplot(1,2,2);imshow(B);title(读取彩色图像);
figure(2);subplot(1,2,1);imshow(B);title(原彩色图像);subplot(1,2,2);imshow(C);title(把彩色图像转换为灰度图像);
for i=1:256
for j=1:256
D(i,j)=A(i,j);
end
end
figure(3);subplot(1,2,1);imshow(A);title(显示原图像);subplot(1,2,2);imshow(D);title(显示图像的局域部分);
………………………………………………………………………………………………………………………………………………………………………………………………………………
第二章 计算机作业
图像的采样
%下采样
A=imread(barb1.bmp);
[m,n]=size(A);
B=zeros(m/2,n);
for i=1:m/2
B(i,1:end)=A(2*i,1:end);
end
C=zeros(m/2,n/2);
for j=1:n/2
C(1:end,j)= uint8(B(1:end,2*j));
end
D = uint8(C);
imshow(D);
%下采样
A=imread(barb1.bmp);
[m,n]=size(A);
B=zeros(m/2,n);
for i=1:m/2
B(i,1:end)=A(2*i,1:end);
end
C=zeros(m/2,n/2);
for j=1:n/2
C(1:end,j)= uint8(B(1:end,2*j));
end
D = uint8(C);
subplot(1,2,1);
imshow(D);
%上采样
[m,n]=size(D);
F=zeros(2*m,n);
for i=1:2*m-1
F(i,1:end)=D(floor(i/2)+1,1:end);
end
G=zeros(2*m,2*n);
for j=1:2*n-1
G(1:end,j)= uint8(F(1:end,floor(j/2)+1));
end
E = uint8(G);
subplot(1,2,2);
imshow(E);
B=imresize(A,[row/2,column/2]);
imshow(B);
A=imread(barb1.bmp);
[row,column]=size(A);
B=imresize(A,[row/2,column/2]);
imshow(B);
(2)
G=im2bw(A,0.4);
imshow(G);
G=im2bw(A,0.48);
imshow(G);
G=im2bw(A,0.5);
imshow(G);
G=im2bw(A,0.55);
imshow(G);
对比可知 阈值设置在0.48左右比较合适。
(3)
A=imread(barb2.bmp);
noise=uint8(randn(size(A)));
B=A+noise;
imshow(B);
第三章 上机作业
(1) 图像的直方图
I=imread(malight.bmp);
m1=zeros(1,256);
[m,n]=size(I);
for i=1:256
for j=1:256
m1(I(i,j))=m1(I(i,j))+1;
end
end
x=1:256;
y=m1;
subplot(1,2,1);
imshow(I);
title(原图像);
subplot(1,2,2);
bar(x,y,g);
title(直方图);
调用imhist的效果更好一些。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
图像的直方图均衡
I=imread(malight.bmp);
m1=zeros(1,256);
[m,n]=size(I);
for i=1:256
for j=1:256
m1(I(i,j))=m1(I(i,j))+1;
end
end
m2=zeros(1,256);
for i=1
显示全部