【问题标题】:Want to draw circle in an image using mouse events(Opencv)想要使用鼠标事件在图像中绘制圆圈(Opencv)
【发布时间】:2013-07-25 08:12:38
【问题描述】:

我想在opencv中使用鼠标事件画圆。

也就是说,每当我单击左键并拖动它时,它应该根据鼠标的 x 和 y 位置绘制圆。我已经尝试过矩形,它工作得很好。但我不知道如何画圈..请任何人帮助我。

【问题讨论】:

    标签: qt opencv


    【解决方案1】:

    您可以使用以下函数为窗口设置回调

    SetMouseCallback
    

    这里的文档:

    http://docs.opencv.org/modules/highgui/doc/user_interface.html

    对于圆圈,您可以使用以下功能:

    circle(Mat& img, Point center, int radius, const Scalar& color, int thickness=1, int lineType=8, int shift=0)
    

    这里的文档:

    http://opencv.willowgarage.com/documentation/cpp/drawing_functions.html

    【讨论】:

    • 是的,用于绘制矩形,我使用它并且知道使用鼠标我们需要调用 SetMouseCallback 函数......但之后如何继续。我不知道如何使用圆半径和通过 SetMouseCallback 函数居中..只有我被击中了...请帮助我....
    • 您首先需要您要在其中绘制圆圈的图像。这是一个递归操作,所以你需要一个 while 循环来重绘你的图像,或者只是在回调函数中重绘它。简单的方法是在全局范围内定义您的 img 对象,如下所示:code.opencv.org/projects/opencv/repository/revisions/master/…。您可以使用回调的 void 点传递图像。在你的回调中,你可以比写 cv::circle(img,cv::Point point(x, y),10,cv::Scalar(255, 0, 255));imshow("Window",img);
    猜你喜欢
    • 2018-11-12
    • 1970-01-01
    • 2011-04-18
    • 1970-01-01
    • 2015-10-17
    • 2021-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多