matlab如何自己阈值分割,[matlab 图像处理] 阈值分割(直方图自己算)

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 瓜子二值化');

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值