function T = PNN_fast_RGBo(Iseg,IRGB,nseg)
segnum = max(Iseg(:));
n= segnum;
conn = diag(ones(1,segnum));
%get boundary conn
[row,col] = size(Iseg);
diffx = diff(Iseg,1,2);
diffy = diff(Iseg,1,1);
sq1 = find(diffx);
sq2 = find(diffy);
for t = 1:length(sq1)
v1 = Iseg(sq1(t));
v2 = Iseg(sq1(t)+ row);
conn(v1,v2) = 1;
conn(v2,v1) = 1;
end
for t = 1:length(sq2)
v1 = Iseg(sq2(t));
v2 = Iseg(sq2(t)+ 1);
conn(v1,v2) = 1;
conn(v2,v1) = 1;
end
histnum = zeros(1,segnum);
histval = zeros(3,segnum);
for r= 1:row
for c = 1:col
segind = Iseg(r,c);
histnum(segind) = histnum(segind) +1;
tmp = IRGB(r,c,:);
tmp = tmp(:);
histval(:,segind) = histval(:,segind) +tmp;
end
end
histval = histval./repmat(histnum,3,1);
qlv = 3;
distv = sqdist(histval, histval);
Y = distv;
Y(conn==0)= inf;
minY_col = zeros(1,n);
minY_colsq = zeros(1,n);
for i = 1:n
j1 = 1:(i-1);
j2 = (i+1):n;
jtmp = [j1 j2];
ytmp = Y(i,jtmp);
[tmp1,tmp2] = min(ytmp);
minY_col(i) = tmp1;
minY_colsq(i) = jtmp(tmp2);
end
R = 1:n;%n: number of vector
Z = zeros(n-1,3); % allocate the output matrix.
N = zeros(1,2*n-1);
N(1:n) = histnum;
centers = zeros(2*n-1,qlv);
centers(1:n,:) = histval';
for s = 1:(n-1)
% [v, k] = min(Y);
ncur = length(minY_col);
[v, k] = min(minY_col);
ctmp = k;
rtmp = minY_colsq(k);
Z(s,:) = [R(rtmp) R(ctmp) v]; % update one more row to the output matrix A
if s<n-1
% Update Y.
i = min([rtmp ctmp]);
j = max([rtmp ctmp]);
I1 = 1:(i-1);
I2 = (i+1):(j-1);
I3 = (j+1):ncur; % these are temp variables
U = [I1 I2 I3];
n1 = N(R(i));
n2 = N(R(j));
%updata conn
t1 = conn(i,:);
t2 = conn(j,:);
t = t1|t2;
conn(i,:) = t;
conn(:,i) = t;
tmp = conn(ncur,:);
conn(j,:) = tmp;
conn(:,j) = tmp;
centers(n+s, :) = (n1*centers(R(i),:)+ n2*centers(R(j),:))/ (n1+n2);
dtmp = (centers(R(U),:)- repmat(centers(n+s,:),length(U),1));
tmpY = sum(dtmp.^2,2);%merge min dist for two centriod?
tmpY(conn(i,U)==0) = inf;
Y(i,i) = 0;
Y(i,U) = tmpY;
Y(U,i) = tmpY;
tmp = Y(ncur,1:ncur);
Y(j,1:ncur) = tmp;
Y(1:ncur,j) = tmp;
[mintmpY,mintmpYsq] = min(tmpY);
% minY_col(j)= minY_col(end);
% minY_colsq(j)=minY_colsq(end);
minY_col(i) = mintmpY;
minY_colsq(i) = U(mintmpYsq);
for sq = 1:length(tmpY)
coltmp = U(sq);
if (minY_colsq(coltmp)~=i)&&(minY_colsq(coltmp)~=j)
if (tmpY(sq)<minY_col(coltmp))
minY_col(coltmp) = tmpY(sq);
minY_colsq(coltmp) = i;
end
else
%must update
n1 = ncur-1;
if coltmp==ncur
% tmpY2 = Deall(1:n1,j)./DRall(1:n1,j);
i0 = 1:(j-1);
j0 = (j+1):n1;
u0 = [i0 j0];
tmpY2 = Y(u0,j);
else
i0 = 1:(coltmp-1);
j0 = (coltmp+1):n1;
u0 = [i0 j0];
tmpY2 = Y(u0,coltmp);
% tmpY2 = Deall(1:n1,coltmp)./DRall(1:n1,coltmp);
end
[mintmp1,mintmp1sq]=min(tmpY2);
mintmp1sq = u0(mintmp1sq);
minY_col(coltmp) = mintmp1;
minY_colsq(coltmp) =mintmp1sq;
end
end
minY_colsq(minY_colsq==ncur) = j;
minY_col(j) = minY_col(end);
minY_colsq(j) = minY_colsq(end);
minY_col(end) = [];
minY_colsq(end) = [];
N(n+s) = N(R(i)) + N(R(j));
R(i) = n+s;
R(j) = R(end);
R(end) = [];
end
end
T = cluster(Z,'maxclust',nseg );
没有合适的资源?快使用搜索试试~ 我知道了~
matlab-基于区域生长和区域合并的无监督彩色图像分割算法matlab仿真-源码
共38个文件
m:33个
mat:4个
jpg:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 16 浏览量
2021-09-15
00:01:00
上传
评论
收藏 4.07MB RAR 举报
温馨提示
matlab_基于区域生长和区域合并的无监督彩色图像分割算法matlab仿真_源码
资源推荐
资源详情
资源评论
收起资源包目录
matlab_基于区域生长和区域合并的无监督彩色图像分割算法matlab仿真_源码.rar (38个子文件)
matlab_基于区域生长和区域合并的无监督彩色图像分割算法matlab仿真_源码
matlab_基于区域生长和区域合并的无监督彩色图像分割算法matlab仿真_源码
1.jpg 62KB
Runme.m 829B
func
PNN_fast.m 4KB
1.mat 979KB
ValleyD.m 863B
RegionMerge_RGB.m 436B
class2Img.m 373B
Fratio.m 988B
SegEval.m 2KB
QuantizedC.m 368B
JAverage.m 632B
RegionMerge.m 430B
SpatialSeg.m 549B
RegionMerging.m 2KB
ValleyG2.m 1KB
JCalculation.m 472B
kmeansO.m 3KB
GenerateWindow.m 716B
EVisible.m 2KB
findNeighbour.m 477B
calcSval.m 285B
build_heap.m 560B
3.mat 1.03MB
SeedGrowing.m 1KB
heap_pop.m 1KB
JImage.m 1KB
2.mat 1MB
4.mat 1018KB
heap_add.m 551B
Borsotti.m 971B
sqdist.m 239B
ValleyG1.m 708B
PNN_fast_RGBo.m 4KB
DrawLine.m 567B
RegionGrowing.m 911B
LiuYang.m 719B
ssim_index.m 3KB
findStatistic.m 318B
共 38 条
- 1
资源评论
mYlEaVeiSmVp
- 粉丝: 1917
- 资源: 19万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功