灰度值阈值设置matlab,基本全局阈值法(basic global thresholding)MATLAB实现

基本全局阈值分割步骤如下:

(1)设定参数

ea0c2d7b7681da467b8ff73d69d0bc94.png,并选择一个初始的估计阈值

51f427b212dac1a4dfff57f0ec11cad7.png

(2)用阈值

76a4b8939cb4d4ad4a6d90487c503425.png分割图像。将图像分成两部分:

05378bf1119dca5cabf27fea6ddf2e53.png是由灰度值大于

51f427b212dac1a4dfff57f0ec11cad7.png的像素组成,

6e721ef3edf467acea29d33d1558b0d0.png是由灰度值小于或等于

51f427b212dac1a4dfff57f0ec11cad7.png的像素组成。

(3)计算

05378bf1119dca5cabf27fea6ddf2e53.png

6e721ef3edf467acea29d33d1558b0d0.png中所有像素的平均灰度值

07e8c31c08e026c39d2098311f02c557.png

26ddbf0c1fd628989e9dfd7b571d7b3e.png,以及新的阈值

e33471bf3ed4192a545437b90b09a7c0.png

(4)如果

ec1c509c71fea714c88d6245f9061c95.png,则推出

778817460a86de1751991744d29ab6d0.png即为最优阈值;否则,将

4dedc710507192bdfc469af203ad1661.png赋值给

e27ec5cf99baf96f6a31751bb136e5d4.png,并重复步骤(2)~(4),直到获取最优阈值。

其具体实现MATLAB代码如下:

%image_bgt.m

function level =image_bgt(I)

%该函数使用basic global thresholding算法实现二值化

I = im2double(I);          %对图像归一化

[M,N] = size(I);

T0 = 0.001;           %设置门限

T1 = (max(max(I)) +min(min(I)))/2;          %得到初始阈值T1

%定义G1、G2的下标,同时起统计个数的作用

columns1 = 1;

columns2 = 1;

%开始遍历

while 1

for i = 1:M

for j = 1:N

if I(i,j)>T1

G1(columns1) = I(i,j);          %得到分组G1

columns1 = columns1 + 1;

else

G2(columns2) = I(i,j);          %得到分组G2

columns2 = columns2 + 1;

end

end

end

%计算G1、G2均值

ave1 = mean(G1);

ave2 = mean(G2);

T2 = (ave1 + ave2)/2;           %得到新阈值T2

if abs(T2 - T1)break;

end

T1 = T2;

columns1 = 1;

columns2 = 1;

end

level = T2;

end

%DIP_exp4_2.m

%该m文件调用image_bgt函数对图像进行basic global thresholding算法阈值分割

clc;clear;closeall;

I =imread('cameraman.tif');

level =image_bgt(I);            %得到basic global thresholding算法阈值

J = im2bw(I,level);                    %实现图像二值化,即非黑即白

subplot(121),imshow(I);title('原图像');

subplot(122),imshow(J);title('basicglobal thresholding后图像');

运行DIP_exp4_2.m文件得结果如下:

ad6708e694faf8fcf387d1c75da85c4d.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值