资源简介
图像分割,简单地说就是将一幅数字图像分割成不同的区域,在同一区域内具有在一定的准则下可认为是相同的性质,如灰度,颜色,纹理等,而任何相邻区域之间其性质具有明显的区别。
基于信息熵的一类方法被广泛应用到图像分割领域,比如最大熵,最大交叉熵,最小交叉熵等。本文研究了基于Tsallis熵的多阈值图像分割算法,通过利用图像的灰度直方图信息,近似拟合灰度的概率分布函数,然后设定目标函数,目标函数最大化对应的阈值就是最佳阈值,相比传统算法,Tsallis熵的阈值分割方法,能够克服一定的噪声干扰,同时避免了单阈值的问题,能够分割多个感兴趣区域。
本文最后在matlab环境中进行真实图像的分割实验,结果表明,这种方法能够较好的克服图像细节分割不准的问题,同时能够针对多个灰度级别进行分割,大大提高分割的准确率。
代码片段和文件信息
clc;
clear;
%C=imread(‘lena.bmp‘);
%C=imread(‘stone.jpg‘);
C=imread(‘1.bmp‘);
if isrgb(C)
I=rgb2gray(C);
else
I=C;
end
%I=imnoise(I‘gaussian‘00.005);
%figure
subplot(131)
imshow(I)
tic
IDX = otsu(I2);
subplot(132);
imagesc(IDX) axis image off
colormap(gray)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%确定基本粒子群算法的迭代次数和粒子个数
Iter = 50;
global popsize
popsize = 20; %%粒子个数
global dimsize
dimsize=2; %%粒子维数
%初始化基本粒子群优化算法的参数
Wmax = 0.9; %最大惯性因子
Wmin = 0.1; %最小惯性因子
c1 = 2.0; %个体学习因子
c2 = 2.0; %群体学习因子
xmax = 254; %粒子允许的最小位置
xmin = 2;
speedmax=10;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%初始化
for k1=1:popsize
for i=1:popsize
%Xpop(i1:dimsize)= unifrnd(xminxmax1dimsize);
%pop(i1:dimsize)=[ unifrnd(xmin85) unifrnd(85170)unifrnd(170255)]; %%三阈值
Xpop(i1:dimsize)=unifrnd(22541dimsize); %%两阈值
end
for j=1:popsize
Xpop(jdimsize+1:2*dimsize)= unifrnd(-speedmaxspeedmax1dimsize);
end
pop(k11:2*dimsize )= Xpop(k11:2*dimsize);
end
BestFit = 0;
pBestFit=zeros(popsize1); %%%%%%%%
%初始化粒子历史最优位置pBest和全局最优位置gBest
pBest = zeros(popsizedimsize);
gBest = zeros(1dimsize);
%迭代更新
for it = 1:Iter
for t=1:popsize
%计算适应度pFit并更新历史最优适应度pBestFit和全局最佳适应度gBestFit
Theta = pop(t1:dimsize);
%当前粒子的适应度pFit
pFit = ThetaFit(ThetaI);
%更新个体历史最优适应度pBestFit
if pFit > pBestFit(t)
pBestFit(t) = pFit;
pBest(t1:dimsize) = pop(t1:dimsize);
end
end
%更新当前时刻全局最优位置gBest、前一时刻全局最优适应度PregBest
%和全局最佳适应度gBestFit
[gBestFitind] = max(pBestFit); %%pBestFit(j:)表示第j个子群的适应度值,ind(j)表示位置
gBest(1:dimsize) = pBest(ind1:dimsize);
%位置向量和速度向量更新
for j=1:popsize
for t = dimsize+1:2*dimsize
%惯性权重更新并产生随机数r1、r2
W = Wmax - it*(Wmax - Wmin)/Iter;
r1 = rand;
r2 = rand;
%速度向量Vpos更新
pop(jt) = W*pop(jt) + c1*r1*(pBest(jt-dimsize) - pop(jt-dimsize)) + ...
c2*r2*(gBest(t-dimsize) - pop(jt-dimsize));
%限制更新后粒子速度在[VminVmax]范围内
if pop(jt) > speedmax
pop(jt) = speedmax;
end
if pop(jt) < -speedmax
pop(jt) = -speedmax;
end
%粒子位置更新
pop(jt-dimsize) = pop(jt-dimsize) + pop(jt);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-10-10 15:39 源码\
文件 56910 2016-04-27 00:29 源码\1.bmp
文件 66614 2016-04-27 00:08 源码\lena.bmp
文件 3936 2016-04-27 00:41 源码\main.m
文件 1888 2016-04-27 12:31 源码\main_Tsallis_2D.m
文件 76885 2012-10-30 15:53 源码\stone.jpg
文件 889611 2016-04-27 12:34 源码\毕业论文 (修复的).docx
目录 0 2018-10-10 15:39 演示\
文件 5437006 2016-04-13 13:32 演示\9780.avi
文件 64 2018-10-10 16:34 说明.txt
目录 0 2018-10-10 15:38 需求\
文件 13002 2016-04-04 21:27 需求\新建 Microsoft Word 文档.docx
相关资源
- 基于MATLAB面部的人数统计系统[戴口罩
- 一个搞定MATLAB界面编程
- Matlab小波分析工具箱原理与应用.pdf
-
PV光伏电池matlabSIMUli
nk - 阵列信号处理中的基于matlab的MUSIC
- RMSHE的MATLAB源代码
- 雷达系统分析与设计(MATLAB版)(第
- Massive MIMO信号检测算法以及信道估计
- MATLAB作图及各种作图函数
- Nonlinear control systems using MATLAB(2019)
- matlab数学建模及数学实验
- AES加密算法的MATLAB仿真
-
FMI Toolbox for Matlab/Simuli
nk的安装和使 - [精通MATLAB GUI设计第3版][陈垚光毛涛涛
- 图像去噪方法分析比较BLS GSM BM3D Non
- 张正友标定程序—MATLAB
- MATLAB 深度学习简介(ppt)
- Census及Hamming距离三维立体重建Matlab程
- NMFSC处理程序,非负矩阵分解matlab程序
- [MATLAB精品丛书][高清文字版]MATLAB语言
- Matlab凸优化工具箱
-
Matlab分享系列 - 3 - Matlab_Simuli
nk代码 - 数字信号处理及其MATLAB实现
- Matlab中unwrap函数C代码实现
- Matlab神经网络工具箱使用教程
- 基于LABVIEW和MATLAB混合编程障碍物识别
- 减速器优化
- 摄像头数字识别matlab程序.zip
- matlab预测控制工具箱使用手册
- PCA人脸识别论文附MATLAB程序
评论
共有 条评论