clc
clear all
close all
M=3%3*3的邻域窗口
N=3
I=imread('1.bmp')%读取图片
[m,n,s] = size(I)%读取图片
I_gray=rgb2gray(I)
T=zeros(m,n)
figure(1)imshow(I_gray)
I_gray=double(I_gray)
for i=M+1:m-M
for j=N+1:n-N
max=1min=255
for k=i-M:i+M %当前像素周围的3*3区域中的最大值和最小值
for l=j-N:j+N
if I_gray(k,l)>max
max=I_gray(k,l)
end
if I_gray(k,l)<min
min=I_gray(k,l)
end
end
end
T(i,j)=(max+min)/2%T矩阵用来记录每点像素的阈值
end
end
I_bw=zeros(m,n)
for i=1:m
for j=1:n %%二值化
if I_gray(i,j)>T(i,j)
I_bw(i,j)=255
else I_bw(i,j)=0
end
end
end
figure(2)imshow(I_bw)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)