在多个框架上绘制矩形
Drawing a Rectangle over multiple frame
甚至可以在多个框架上绘制矩形吗?
让我解释一下。我有一个高大的盒子,我想在那个盒子上画一个矩形,但问题是盒子太大而无法放入框架内。我知道盒子的确切尺寸以及离盒子有多远。现在我想从上到下移动我的相机,这样我就可以看到盒子上方的完整矩形。
一个简单的方法是先merge/combine将这些框拼成一个更大的框(比方框大),然后在这个组合框上画框。
如果需要得到每个画框的小框,可以进一步提取组合框的ROI。
我不确定我是否理解你的问题,但这是我的两分钱。
我假设您有一个框架,它是 cv::Mat
中的一个图像,它显示一个对象(一个框)并且您想在它周围绘制一个矩形。您知道图像中对象的二维坐标。然后,你可以像这样画一个矩形:
cv::rectangle(image, cv::Point(x1, y1), cv::Point(x2, y2), cv::Scalar(255, 0, 0));
其中 x1 y1
和 x2 y2
是要显示的矩形的两个对角,cv::Scalar
是颜色(如果您的图像是 CV_8UC3
,则为红色)。
当您移动相机时,我假设您会重新计算新图像中对象的二维坐标。然后,您必须再次重绘矩形。最终代码应该与此类似:
while (true) {
cv::Mat image = getImageFromCamera();
cv::Point corner1, corner2;
computeRectangleCoordinates(corner1, corner2);
// draw
cv::rectangle(image, corner1, corner2, cv::Scalar(255, 0, 0));
// display
cv::imshow("box", image);
cv::waitKey(5);
}
甚至可以在多个框架上绘制矩形吗?
让我解释一下。我有一个高大的盒子,我想在那个盒子上画一个矩形,但问题是盒子太大而无法放入框架内。我知道盒子的确切尺寸以及离盒子有多远。现在我想从上到下移动我的相机,这样我就可以看到盒子上方的完整矩形。
一个简单的方法是先merge/combine将这些框拼成一个更大的框(比方框大),然后在这个组合框上画框。
如果需要得到每个画框的小框,可以进一步提取组合框的ROI。
我不确定我是否理解你的问题,但这是我的两分钱。
我假设您有一个框架,它是 cv::Mat
中的一个图像,它显示一个对象(一个框)并且您想在它周围绘制一个矩形。您知道图像中对象的二维坐标。然后,你可以像这样画一个矩形:
cv::rectangle(image, cv::Point(x1, y1), cv::Point(x2, y2), cv::Scalar(255, 0, 0));
其中 x1 y1
和 x2 y2
是要显示的矩形的两个对角,cv::Scalar
是颜色(如果您的图像是 CV_8UC3
,则为红色)。
当您移动相机时,我假设您会重新计算新图像中对象的二维坐标。然后,您必须再次重绘矩形。最终代码应该与此类似:
while (true) {
cv::Mat image = getImageFromCamera();
cv::Point corner1, corner2;
computeRectangleCoordinates(corner1, corner2);
// draw
cv::rectangle(image, corner1, corner2, cv::Scalar(255, 0, 0));
// display
cv::imshow("box", image);
cv::waitKey(5);
}