|
一维最大熵法进行2分割和3分割(MATLAB)
链接:https://pan.baidu.com/s/1M15vV4l8R96hahprmhXDEA&shfl=sharepset 提取码:hobi
具体链接在halcom.cn论坛,联系人QQ:3283892722
该论坛是一个学习交流平台,我会逐一的和大家分享学习。
欢迎大家录制视频,你可在论坛进行打赏分享。
视频专用播放器:http://halcom.cn/forum.php?mod=viewthread&tid=258&extra=page%3D1\
- clc,clear,close all
- warning off
- % 2个阈值,实现3分类分割
- I = imread('car.bmp');
- % I = imread('screen.jpg');
- figure('color',[1,1,1]), imshow(I,[])
- t1 = 128; % 初始化最佳阈值
- t2 = 180; % 初始化最佳阈值
- Lmax = 256; % 最大灰阶, uin8
- k=1;
- for t1=0:Lmax-1
- for t2 = t1+1:Lmax
- pop(k,:) = [t1,t2];
- H1(k) = H1_segFun2(I, pop(k,:) );
- k=k+1;
- end
- end
- [Hmax, bestT]=max(H1);
- % 显示
- Iout = imageGray(I, pop(bestT,:) );
- figure('color',[1,1,1])
- imshow(Iout,[])
- colormap jet;
- axis equal
复制代码 适应度函数H1_segFun2如下:显示函数imageGray如下:
- function imgOut = imageGray(img, thre)
- % 图像按照不同的灰阶值显示
- limits = [0, thre, 255];
- imageSize = size(img);
- imgOut(:,:,:)=img*0;
- k=1;
- for i=1:imageSize(1,1)
- for j=1:imageSize(1,2)
- while(k<size(limits, 2))
- if(img(i,j)>=limits(1,k) && img(i,j)<=limits(1,k+1))
- imgOut(i,j,1) = limits(1, k);
- end
- k=k+1;
- end
- k=1;
- end
- end
复制代码
|
|