📄 phdmtnew.m
字号:
tic
%image=wwx(5371,6530,4217,5677); % the maps are readed is on the path "e:\icmap\tw1"
%image=wwx(5371,6530,2900,4300);
%modarea=[1889,1961,1145,1178];
%modarea=[1451,1521,1164,1099];
%modarea=[1157,1229,1720,1753];
image=wwx([5371,6171,2000,3000]);
% image=wwx([5371,6171,2080,2850]);
modarea=[2752,2850,2012,2292];
model=wwx(modarea);
%model=wwx(modarea(1),modarea(2),modarea(3),modarea(4));
%image=wwx([1500,2500,2500,3500]);
%modarea=[1889,1961,1145,1178];
%model=wwx(modarea);
% % image=ww(2200,3200,4000,5200);
% image=ww(2100,2900,4000,5200);
% modarea=[2566,2709,3880,3987];
% model=ww(modarea(1),modarea(2),modarea(3),modarea(4));
[mapen,cofi]=mapenhance(image);
[moden,cofm]=mapenhance(model);
mapenbw=im2bw(mapen,cofi);
modenbw=im2bw(moden,cofm);
[linewid,linedis,se]=glwd(mapenbw);
[rindx,cindx]=togrid(mapenbw,linewid,linedis,se);
coarsemap=mapenbw(rindx,cindx);
coarsemod=ggridmod(modarea,linewid,linedis,se);
tic
coarseobj=comatch(coarsemap,coarsemod);
%play
pcoarsemap=coarsemap;
[cmh,cmw]=size(coarsemod);
for ii=1:size(coarseobj);
row=coarseobj(ii,1);
col=coarseobj(ii,2);
pcoarsemap(row:row+cmh-1,col)=1;
pcoarsemap(row:row+cmh-1,col+cmw-1)=1;
pcoarsemap(row,col:col+cmw-1)=1;
pcoarsemap(row+cmh-1,col:col+cmw-1)=1;
end
% pcoarsemap=coarsemap;
% [cmh,cmw]=size(coarsemod);
% for ii=1:size(coarseobj);
% row=coarseobj(ii,1);
% col=coarseobj(ii,2);
% parc=pcoarsemap(row:row+cmh-1,col:col+cmw-1);
% pcoarsemap(row:row+cmh-1,col:col+cmw-1)=or(parc,coarsemod);
% end
%
toc
orirow=rindx(coarseobj(:,1)');
oricol=cindx(coarseobj(:,2)');
oriobj(:,1)=orirow';
oriobj(:,2)=oricol';
lldis=linewid+linedis;
shiftc=lldis;
enl=2*lldis;
trueobj=[];
[mhei,mwid]=size(model);
image=double(image); model=double(model);
smodel=sum(sum(model.*model));
for kk=1:size(oriobj,1)
row=oriobj(kk,1);col=oriobj(kk,2);
if row-shiftc>0,rown=row-shiftc;else, rown=1;end
if col-shiftc>0,coln=col-shiftc;else, coln=1;end
inout=[];
for ii=rown:rown+enl
for jj=coln:coln+enl
pmap=image(ii:ii+mhei-1,jj:jj+mwid-1);
spmap=sum(sum(pmap.*pmap));
cosout=sum(sum(model.*pmap))/sqrt(spmap*smodel);
if isempty(inout)
inout=[ii,jj,cosout];
elseif cosout>inout(3)
inout=[ii,jj,cosout];
end
end
end
trueobj=[trueobj;inout];
end
toc
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -