我有一个边界框:
bbox = [10 20 50 60];
我使用以下方法将边界框转换为点列表:
points = bbox2points(bbox);
然后我使用 affine2d 和 transformPointsForward 对点进行旋转。现在我有了转换点,如何将它们转换回边界框?是否有一些内置功能相当于" points2bbox"?谢谢。
答案 0 :(得分:1)
如果您只想从点创建一个bbox,而不必担心转换,请执行此操作。我刚做完了,就行了。
function bbox = points2bbox(roi)
% This is a function that takes in an roi (a set of four points) and
% outpouts a bbox (which is in for form of x,y,w,h, where x and y
% correspond to the lower left of the coordinates for the points.
% MAKE SURE THAT YOUR POINTS MAKE A RECTANGLE!
% THIS IS WHAT BBOX HERE DESCRIBES!
% Getting x and y data
x = roi(:,1);
y = roi(:,2);
% Getting width and height
width = max(x) - min(x);
height = max(y) - min(y);
% Constructing bbox
bbox = [min(x) min(y) width height]
end
其中roi(我的研究区域)是一组点,第一列为x坐标,第二列为y坐标。
答案 1 :(得分:0)
现在排序了。我只是以各种方式翻转图像,然后使用旋转角度和原始图像的尺寸(保持不变)计算新的边界框位置。