close all;%关闭所有窗口
clear;%清除变量的状态数据
clc;%清除命令行
wangpic=imread('lenargb.bmp');
figure;%打开一个新窗口
imshow(wangpic);
title('1 lena的原图');
wangpicgray=rgb2gray(wangpic);
figure;%打开一个新窗口
imshow(wangpicgray);
title('2lena的灰度图');
%直方图
figure;%打开一个新窗口
imhist(wangpicgray);
title('3lena由matlab直方图');
%直方图自己算
[width,height,bmsize]=size(wangpicgray);
myzjhist=zeros(256,1);
myquzhi=0;
for i=1:width
for j=1:height
myquzhi=wangpicgray(i,j);
myzjhist(myquzhi+1,1)=myzjhist(myquzhi+1,1)+1;
end
end
figure;
plot(myzjhist);
title('4 lena自己计算直方图');
%阈值
[width,height,bmsize]=size(wangpicgray);
for i=1:width
for j=1:height
if wangpicgray(i,j)>140
wangpicgray(i,j)=255;
else
wangpicgray(i,j)=0;
end
end
end
figure;
imshow(wangpicgray);
title('5lena二值化');
wanpic=imread('guazi.bmp');
figure;%打开一个新窗口
imshow(wanpic);
title('6瓜子的原图');
wanpicgray=rgb2gray(wanpic);
figure;%打开一个新窗口
imshow(wanpicgray);
title('7瓜子的灰度图');
%直方图
figure;%打开一个新窗口
imhist(wanpicgray);
title('8 瓜子由matlab直方图');
%直方图自己算
[width,height,bmsize]=size(wanpicgray);
myzjhistguazi=zeros(256,1);
myquzhiguazi=0;
for i=1:width
for j=1:height
myquzhiguazi=wanpicgray(i,j);
myzjhistguazi(myquzhiguazi+1,1)=myzjhistguazi(myquzhiguazi+1,1)+1;
end
end
figure;
plot(myzjhistguazi);
title('9 瓜子自己计算直方图');
%阈值 [width,height,bmsize]=size(wanpicgray); for i=1:width for j=1:height if wanpicgray(i,j)>140 wanpicgray(i,j)=255; else wanpicgray(i,j)=0; end end end figure; imshow(wanpicgray); title('10 瓜子二值化');