查找二维平面 (Matlab) 中数据集的外接矩形的长度和宽度



拥有一组 2D 数据(假设知道平面中某些点的位置(,如何在 Matlab 中找到点的外接矩形的长度和宽度?

要获得给定点的周长,您可以按以下步骤操作。首先使用边界获取边界点。获得边界点后,您可以获取距离并将它们相加;这给了你周界。

data = rand(10,2) ;
%% Get boundary of the points
idx = boundary(data(:,1),data(:,2)) ;
%%
figure
hold on
plot(data(:,1),data(:,2),'.r') ;
plot(data(idx,1),data(idx,2),'b') ;
%% perimeter
bound = [data(idx,1) data(idx,2)] ;
dx_boundary = diff(bound) ;
dist = sqrt(dx_boundary(:,1).^2+dx_boundary(:,2).^2);
perimeter = sum(dist) ;

您可以使用 x 和 y 坐标的最大值和最小值获取边界框。从中获取矩形的坐标。

data = rand(10,2) ;
%% Get bounding box/ Rectangle
x0 = min(data(:,1)) ; x1 = max(data(:,1)) ;
y0 = min(data(:,2)) ; y1 = max(data(:,2)) ;
%% Legnth and breadth of rectangle
L = abs(x1-x0) ;
B = abs(y1-y0) ;
%% coordinates of rectangle 
Rect = [x0 y0 ; x0+L y0 ; x0+L y0+B ; x0 y0+B ; x0 y0] ;
%% figure
figure
hold on
plot(data(:,1),data(:,2),'.r')
hold on
plot(Rect(:,1),Rect(:,2),'b')

最新更新