📄 mycombine.m
字号:
function [rectange,rec_center,rec_ratio]=mycombine(rec,heigth,width,T1,T2)
%将临近区域进行合并
L_rec=length(rec);
rectange=zeros(heigth,width);
for i=1:L_rec
for j=i+1:L_rec
same=(min(rec{i}(2),rec{j}(2))-max(rec{i}(1),rec{j}(1)))/...
min(rec{i}(2)-rec{i}(1),rec{j}(2)-rec{j}(1));
h=abs([rec{i}(3)-rec{j}(3),rec{i}(3)-rec{j}(4),...
rec{i}(4)-rec{j}(3),rec{i}(4)-rec{j}(4)]);
if(same>=T1&&min(h)<=width*T2)
rec{i}=[min(rec{i}(1),rec{j}(1)),max(rec{i}(2),rec{j}(2)),...
min(rec{i}(3),rec{j}(3)),max(rec{i}(4),rec{j}(4))];
end
end
end
for i=1:L_rec
rectange(rec{i}(1):rec{i}(2),rec{i}(3):rec{i}(4))=1;
end
boundaries = bwboundaries(rectange); %调用函数 bwboundaries
k=length(boundaries);
rectange=cell(1,k);
for i=1:k
b = boundaries{i};
rectange{i}(1)=min(b(:,1));rectange{i}(2)=max(b(:,1));%矩形的行起点与终点
rectange{i}(3)=min(b(:,2));rectange{i}(4)=max(b(:,2));%矩形的列起点与终点
rec_center{i}=[fix((rectange{i}(1)+rectange{i}(2))/2),fix((rectange{i}(3)+rectange{i}(4))/2)];%矩形中心
rec_ratio(i)=(rectange{i}(4)-rectange{i}(3))/(rectange{i}(2)-rectange{i}(1));%矩形长宽比
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -