图像处理计算机作业
第一章 上机作业
使用函数读取图像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