在图像上绘制一个矩形,如何旋转此矩形,并获取它的参数?

时间:2012-07-08 13:49:33

标签: qt qt4 computer-vision

我想开发一个小应用程序,允许用户使用矩形来注释图像的不同部分。例如,用户可以在标有“head”的图像上绘制一个矩形,此app可以获取该矩形的参数(高度,宽度,中心坐标...)。 有时我还需要旋转此矩形以选择特定区域。

我想用Qt来实现我的想法,但我不知道如何:

  1. 获取绘制的矩形用户的参数。 (高度,宽度,中心坐标......)
  2. 如何旋转矩形并获得旋转角度。

1 个答案:

答案 0 :(得分:1)

要绘制矩形用户,您需要在绘图窗口小部件中显示鼠标事件。您可以重新实现窗口小部件的mousePressEventmouseMoveEventmouseReleaseEvent或将event filter安装到此窗口小部件。当用户按下左键时,您应该记住事件的pos()为矩形的左上角。当用户在此之后移动鼠标时,应设置移动事件的矩形ro pos()的右下角。释放按钮必须提交创建矩形。

有几种方法可以绘制矩形。您可以实施paintEvent并在其中使用QPainter。但我认为最好的方法是使用QGraphicsScene。您可以创建可见的矩形,移动和旋转它们。