一个基于MATLAB环境的图像分割算法,运用最大熵解决图像分割问题。

  • 虫虫123456
    了解作者
  • matlab
    开发工具
  • 426.4KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 5 积分
    下载积分
  • 0
    下载次数
  • 2022-07-05 00:59
    上传日期
一个基于MATLAB环境的图像分割算法,运用最大熵解决图像分割问题。(An image segmentation algorithm based on MATLAB environment is applied to solve the problem of image segmentation using maximum entropy.)
Tsallis灰度熵.rar
  • Tsallis灰度熵
  • 分割后图像
  • cameraman.fig
    61.4KB
  • Infrared footman.fig
    148.6KB
  • flame.fig
    149.9KB
  • cameraman.png
    37.7KB
  • TsallisGrayEntropy.asv
    1.5KB
  • TsallisGrayEntropy.m
    1.7KB
  • Infrared footman.png
    22.8KB
  • flame.png
    23.7KB
内容介绍
function th=TsallisGrayEntropy(imag); %参考文献《基于二维灰度熵及混沌粒子群的图像阈值选取》 %实现Tsallis灰度熵的最大化分割方法(此方法与Tsallis熵的区别在于,Tsallis熵只是考虑直方图的概率 %信息而未考虑图像中目标和背景类内灰度级的均匀性) clc; clear; %imag=imread('cameraman.png'); imag=imread('Infrared footman.png'); subplot(132),imshow(imag) imag=imag(:,:,1); subplot(131),imhist(imag) hold on MAX=double(max(imag(:))); MIN=double(min(imag(:))); [m,n]=size(imag); img=double(imag); out_im=zeros(m,n); [counts x]=imhist(imag);%x对应0~255的灰度级,counts对应每个灰度级的频数(即每个灰度级像素的个数) h=counts(:);%频数 %hist=counts'./sum(counts(:));%归一化直方图数据 a=0.8; %产生一个0-1之间的随机数 for i=MIN:MAX if h(i)~=0 st=i-1; break; end end st for i=MAX:-1:MIN if h(i)~=0 nd=i-1; break; end end nd H=[]; for t= st+1:nd-1 u0(t)=0;v0(t)=0; ub(t)=0;vb(t)=0; for i=0:t u0(t)=u0(t)+i*h(i+1); v0(t)=v0(t)+i.^a*h(i+1); end for i=t+1:MAX-1 ub(t)=ub(t)+i*h(i+1); vb(t)=vb(t)+i.^a*h(i+1); end if u0(t)*ub(t)~=0 E=v0(t)*vb(t)./(u0(t).^a*ub(t).^a); else break; end H(t-st+1)=1/(a-1)*(1-E); end position=find(H==max(H)); th=st+position-1 x(t)=th; plot(th,x,'-r*') hold on gtext('th=101','color','r') for i=1:m %用阈值th分割图像 for j=1:n if(img(i,j)>th) out_im(i,j)=255; else out_im(i,j)=0; end end end subplot(133),imshow(out_im),title('Tsallis Gray Entropy Threshold') end
评论
    相关推荐
    • MATLAB学习资料
      MATLAB学习入门的相关学习资料,主要是一些书籍的PDF资料。
    • matlab学习ppt
      matlab学习ppt是学习matlab必备工具,MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像...
    • matlab学习资料
      matlab学习课程,报告ppt学习资料,word文档类资料,齐全的matlab学习资料,帮助同学们更好地学习matlab,下载快乐!
    • Matlab学习资料
      Matlab学习资料 1.Matlab函数.doc 2.MATLAB函数参考手册.pdf 3.MATLAB函数速查手册.pdf 4.MATLAB命令大全.pdf
    • MATLAB学习资料
      matlab学习资料。通过一个一个小的工程实例,提高matlab水平。这样既有趣,而且可以将matlab用于工程实践中。在实践中成长。
    • MATLAB学习资料
      MATLAB学习资料 能够为初学者提供比较好的入门资料 希望对大家有帮助
    • MATLAB 学习资料
      这是有关 MATLAB 学习的很好资料,没有解压密码,可放心使用!
    • matlab学习手册
      本指南列举的MATLAB 代码编写的建议在软件开发小组实际工作中得到一致性的认 可。本指南与C、C++与Java 的同类手册在整体上是相似的,但是针对MATLAB 的特征 与历史进行了修正。指南中的建议是基于多种其他代码...
    • matlab学习资料
      matlab学习资料,对大家学习非常有帮助,对于以后使用其工作的学习非常有帮助
    • matlab学习课件
      MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程...