%----------- Input ----------------
Orig_I1=rgb2gray(imread('ss.JPG'));
Orig_I = double(Orig_I1) / 256;
figure,imshow(Orig_I);title('原来图像');axis on;
%----------- Pre-processing ----------------
now=[];
[nRow, nColumn] = size(Orig_I);
L=16; %the size of moving windows
%expand_image=zeros(2*nRow,2*nColumn);
b=flipdim(Orig_I,1);
c=[b;Orig_I;b];
d=flipdim(c,2);
expand_image=[d c d];
seg_image=zeros(L);
[Row, Column] = size(expand_image);
%----------- segmenting the image ----------------
for i=nRow+1:Row-nRow
for j=nColumn+1:Column-nColumn
x=i;y=j;
disp(['--> discompose the point at row ' num2str(x-nRow) ' column ' num2str(y-nColumn) '.']);
for m=1:L
for n=1:L
seg_image(m,n)=expand_image(x-L/2+1,y-L/2+1);
y=y+1;
end
x=x+1;
y=j;
end
%----------- Wavelet Decomposition ----------------
%n = size(seg_image,1);
%n_log = log2(n);
level = 2;
type = 'bior4.4';
[Lo_D,Hi_D,Lo_R,Hi_R] = wfilters(type);
[E_W, S] = func_DWT(seg_image, level, Lo_D, Hi_D);
E_W=E_W';
now=[now;E_W];
end
end
n_now=now;
%normalize the now matrix
[now_row,now_column]=size(now);
max_now=max(now);
min_now=min(now);
fm=max_now-min_now;
for j=1:now_column
for i=1:now_row
now(i,j)=( now(i,j)-min_now(j) )/ fm(j);
end
end
% FCM method making sort
disp('FCM method making sort.');
[center,U,obj_fcn] = fcm(now,4);
maxU = max(U);
index1 = find(U(1,:) == maxU); % Find the data points with highest grade of membership in cluster 1
index2 = find(U(2,:) == maxU); % Find the data points with highest grade of membership in cluster 2
index3 = find(U(3,:) == maxU); % Find the data points with highest grade of membership in cluster 3
for r=1:nRow
for c=1:nColumn
disp(['--> fcm making sorts at row ' num2str(r) 'column ' num2str(c) '.']);
m=(r-1)*nColumn+c;
size1=size(index1,2);
size2=size(index2,2);
size3=size(index3,2);
q=1;
size_now=max(max(size1,size2),size3);
while (q<size_now+1)
if q<size1+1
if index1(q)==m
Orig_I1(r,c)=255;
break;
end
end
if q<size2+1
if index2(q)==m
Orig_I1(r,c)=128;
break;
end
end
if q<size3+1
if index3(q)==m
Orig_I1(r,c)=64;
break;
end
end
q=q+1;
end
if(q==size_now+1)
Orig_I1(r,c)=0;
end
end
end
figure,imshow(Orig_I1);title('分割后图像');axis on;
matlab.zip_shelterf5v_图像分割 小波_小波图像分割
版权申诉
5星 · 超过95%的资源 127 浏览量
2022-09-24
04:20:23
上传
评论 1
收藏 529KB ZIP 举报
林当时
- 粉丝: 100
- 资源: 1万+
最新资源
- Python 程序语言设计模式思路-创建型模式:原型模式:通过复制现有对象来创建新对象,面向对象编程
- 卸载软件geek卸载软件geek
- Python 程序语言设计模式思路-创建型模式:单例模式,确保一个类的唯一实例(装饰器)面向对象编程、继承
- skywalking-plugins.jar skywalking-alarm.jar
- 独栋别墅图纸D020-两层-10.00&11.00米- 施工图.dwg
- Python 程序语言设计模式思路-创建型模式:工厂模式,创建对象的统一接口,封装对象的创建逻辑
- python自学教程-05-json数据格式的介绍.ev4.rar
- python自学教程-04-自定义JavaScript.ev4.rar
- 《淘宝后台系统...》
- skywalking-plugins.jar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈