【可更换其他算法,获取资源
请见文章第5节:资源获取】
1. 基础麻雀搜索算法
略。
2. 多阈值Otsu原理
ostu方法使用最大化类间方差(intra-class variance, ICV)作为评价准则,利用对图像直方图的计算,可以得到最优的一组阈值组合。
ostu方法不仅适用于单阈值的情况,它可以扩展到多阈值。假设有k个分类,c1,c2,…,ck时,他们之间的类间方差定义为:
比如,k=3时,将原图像的灰度区间分为3个类,此时需要两个阈值,定义类间方差如下:
上面式子中,k1和k2为待确定的两个阈值,使得类间方差最大化的k1和k2就是最优的一组阈值。
对于多阈值的情况,可以采用群智能优化算法来寻找最优的阈值,本份代码利用麻雀搜索算法来寻找最优的阈值。
3. 部分代码展示
%% 清空环境
clc
clear
close all
%%
img = imread('3.png');
%绘制原图
figure
imshow(img);
title('原图')
img_ori=rgb2gray(img);
img=rgb2gray(img);
figure
%灰度直方图
imhist(img)
title('灰度直方图')
%目标函数
fitness=@(X)OTSU(img,X);
%阈值个数,优化下边界,上边界,最大迭代次数,种群数量。
num_Threshold=3;
lb=0;
ub=255;
max_iter=100;
sizepop=30;
4. 仿真结果展示
5. 资源获取
可以获取完整代码资源。👇👇👇👀名片