资源简介

改程序是蚁群优化方法进行图像分割的程序,对普通图像跟MRI图像进行测试,效果理想!

资源截图

代码片段和文件信息

%close all
clear all;clc
h=helpdlg(‘按左键选择分割区域双击‘);
uiwait(h)

%程序中对图像特征最敏感的两个参数
%T=5;%邻域特征的域值,决定聚类中心的一个关键参数
r=300;%归为该聚类中心的最小距离

prompt={‘最大循环次数:‘‘邻域灰度阈值:‘};
name=‘蚁群聚类分割‘;
numlines=1;
defaultanswer={‘10‘‘10‘};
options.Resize=‘on‘;
options.Windowstyle=‘normal‘; 
options.Interpreter=‘tex‘;
itermax1=inputdlg(promptnamenumlinesdefaultansweroptions);
itermax=str2num(itermax1{1});
T=str2num(itermax1{2});
%itermax=10; %



%load aa;%aa.mat里面储存了一幅灰度图象的矩阵数据
%bb=imcrop(bb);%从该图像中选中一块矩形区域,程序对选中区域进行处理,这样可以减少运行时间 

%[xmap]=imread(‘Dorsal 10.4.gif‘);%这几句读入索引类型的图象
%grayimg=ind2gray(xmap);%把索引类型图像转换为灰度图象
dicom1=dicomread(‘33091247‘);
grayimg=dicom2gray(dicom1);
%grayimg=imadjust(dicom1);
figure;imshow(grayimg)

%grayimg=imresize(grayimg0.5);%把图片缩小为原来大小的0.5倍
%figure;imshow(grayimg);%把读入的图片显示出来
set(gcf‘outerposition‘get(0‘screensize‘));%设置figure全屏显示
[ffimgrect]=imcrop(grayimg);

set(gcf‘outerposition‘get(0‘screensize‘));%设置figure全屏显示
title(‘原始图像‘);
%h1 = zoom;
%set(h1‘Enable‘‘on‘)
%figure;
%imshow(ffimg);

%w8=[111;1-81;111];
%ffimg=ffimg-imfilter(ffimgw8‘replicate‘);

%ffimg=grayimg;
%ff=imread(‘LENA256.BMP‘);%读入另一幅灰度图象对算法进行效果测试

%ffimg=imread(‘cameraman.tif‘);%处理256*256的图片
%ffimg=imresize(ffimg0.5);

%cannyedgeimg=edge(ff‘canny‘);%对读入的待处理灰度图象进行canny边缘检测
%figure;imshow(cannyedgeimg)%显示边缘检测输出的二值边缘图像 

%width=70;%设定一个正方形的区域的边长
%另一种选取图像中一个正方形区域的方法
%ff=ff(floor(a/2)-width:floor(a/2)+width-1floor(b/2)-width:floor(b/2)+width-1);

%[ab]=size(ff);%输出图像的大小
%figure;imshow(ff);%显示待分割的图像
ff=double(ffimg);%把图像数据类型由unit8转化为double类型,便于后面进行数值处理

ff = medfilt2(ff);%进行中值滤波处理,效果比原来在连续性这一点上要好
%figure;imshow(uint8(ff));


%w1=fspecial(‘laplacian‘);w2=w1‘;%采用拉普拉斯梯度算子 
%w1=fspecial(‘log‘3);w2=w1‘;%采用log梯度算子
%w1=fspecial(‘prewitt‘);w2=w1‘;%采用prewitt梯度算子
w1=[-1-2-1;000;121];w2=[-101;-202;-101];%采用sobel梯度算子
g=sqrt(imfilter(ffw1).^2+imfilter(ffw2).^2);%计算梯度图像
gmax=max(sum(g(:3:size(ff2)-2)))/(size(ff1)-4);%取出最大梯度列的均值  注意: 由于边界采用了人为填充所以剃度很大应该忽略 

fp=padarray(ff[11]‘replicate‘‘both‘);%对边界进行填充 目的是为了进行3*3的8邻域特征提取
 for i=2:size(ff1)+1
      for j=2:size(ff2)+1
          a=[ fp(i-1j-1) fp(i-1j) fp(i-1j+1);fp(ij-1)  fp(ij) fp(ij+1); fp(i+1j-1)  fp(i+1j) fp(i+1j+1)];
          ne(i-1j-1)=length(find((a-fp(ij))      end
 end

%下面是测试ne中小于等于6对应的图象中的点所组成的图像边缘
%  as1=size(ff1);as2=size(ff2);
%  m=zeros(as1as2);
%  m=reshape(m1as1*as2);
%  m(find(ne<=5))=1;
%  m=reshape(mas1as2);
%  figure;imshow(m)

 
 %  初始化聚类中心
 f=reshape(ff1size(ff1)*size(ff2));
 h=hist(f256);%灰度直方图图象点统计
 
 counter=0;%计算出灰度直方图上的极大值点,以它们作为聚类中心
 for i=2:length(h)-1
  if h(i-1)<=h(i)&h(i)>=h(i+1)
   counter=counter+1;
   V(counter)=i; 
  end
end
h1=sum(h(V))/length(h(V));%取整体均值作为区分背景目标与边缘的区域值,即像素数远远大于该整体均值的灰度作为背景或者目标的灰度特征
h2=sum(h(find(h(V)  for i=1:counter
      if h(V(i))>5*h1
 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      10878  2009-06-04 15:23  LCL_ANT_COLONY\Colony_partition\Automatic\ACO_edge_detection.m

     文件     118946  2009-05-20 17:38  LCL_ANT_COLONY\Colony_partition\Automatic\Dorsal 10.4.gif

     文件        215  2009-05-20 17:38  LCL_ANT_COLONY\Colony_partition\Automatic\fname.mat

     文件       8356  2009-05-21 19:30  LCL_ANT_COLONY\Colony_partition\Automatic\waitbar.m

     文件       3431  2009-05-22 12:31  LCL_ANT_COLONY\Colony_partition\Automatic\drawedgelist.m

     文件       7646  2009-05-20 17:38  LCL_ANT_COLONY\Colony_partition\Automatic\edgelink.m

     文件     189886  2009-05-20 10:53  LCL_ANT_COLONY\Colony_partition\Automatic\33091247

     文件        267  2009-05-24 22:45  LCL_ANT_COLONY\Colony_partition\Automatic\a_dicom.m

     文件        501  2009-05-25 17:02  LCL_ANT_COLONY\Colony_partition\Automatic\dicom2gray.m

     文件     118946  2009-05-20 17:38  LCL_ANT_COLONY\Colony_partition\FCM\Dorsal 10.4.gif

     文件         41  2009-05-20 17:38  LCL_ANT_COLONY\Colony_partition\FCM\fdd.m

     文件       8217  2009-05-20 17:43  LCL_ANT_COLONY\Colony_partition\FCM\waitbar.m

     文件       8572  2009-06-04 15:28  LCL_ANT_COLONY\Colony_partition\FCM\MYFCM.m

     文件       4040  2009-05-20 17:43  LCL_ANT_COLONY\Colony_partition\FCM\fcm.m

     文件     189886  2009-05-20 10:53  LCL_ANT_COLONY\Colony_partition\FCM\33091247

     文件       3388  2009-05-25 08:29  LCL_ANT_COLONY\Colony_partition\FCM\nlfilter.m

     文件        376  2003-01-26 01:00  LCL_ANT_COLONY\Colony_partition\FCM\mkconstarray.m

     文件       3329  2009-05-25 08:55  LCL_ANT_COLONY\Colony_partition\FCM\rand.asv

     文件       8395  2009-05-30 09:28  LCL_ANT_COLONY\Colony_partition\FCM\MYFCM.asv

     文件      41938  2009-05-30 09:31  LCL_ANT_COLONY\Colony_partition\FCM\lcl.mat

     文件     118946  2009-05-20 17:38  LCL_ANT_COLONY\Colony_partition\Semi-automatic\Dorsal 10.4.gif

     文件       3472  2009-05-22 12:55  LCL_ANT_COLONY\Colony_partition\Semi-automatic\drawedgelist.m

     文件       7646  2009-05-20 17:38  LCL_ANT_COLONY\Colony_partition\Semi-automatic\edgelink.m

     文件       2601  2009-05-22 09:09  LCL_ANT_COLONY\Colony_partition\Semi-automatic\edge_linking.m

     文件       9515  2009-05-20 17:38  LCL_ANT_COLONY\Colony_partition\Semi-automatic\source_MY_ACO_edge_detection.gif

     文件       8217  2009-05-21 08:33  LCL_ANT_COLONY\Colony_partition\Semi-automatic\waitbar.m

     文件        500  2009-05-22 08:41  LCL_ANT_COLONY\Colony_partition\Semi-automatic\READ ME.txt

     目录          0  2009-11-12 10:17  LCL_ANT_COLONY\Colony_partition\Automatic

     目录          0  2009-11-12 10:17  LCL_ANT_COLONY\Colony_partition\FCM

     目录          0  2009-11-12 10:17  LCL_ANT_COLONY\Colony_partition\Semi-automatic

............此处省略5个文件信息

评论

共有 条评论