opencv中setMousecallback的用法

来源:互联网 发布:阿拉伯数字转大写算法 编辑:程序博客网 时间:2024/05/16 11:32

opencv版本:3.1
setMousecallback用法demo,输出鼠标框出矩形
参考:http://blog.csdn.net/yangtrees/article/details/7573919

#include <iostream>#include <opencv2/opencv.hpp>using namespace std;using namespace cv;bool select_flag = false;Rect select;Mat img;void onMouse(int event, int x, int y, int flags, void*param){    if (event == CV_EVENT_LBUTTONDOWN)    {        select.x = x;        select.y = y;        select_flag = true;    }    else if (select_flag && event == CV_EVENT_LBUTTONUP)    {                       Rect roi = Rect(Point(select.x, select.y), Point(x, y));        select_flag = false;        //显示框出的矩形        rectangle(img, roi, Scalar(0, 255, 0), 2);        cout << "rect x" << roi.x<<"   y"<< roi.y;        cout << "  rect height" << roi.height << "  width" << roi.width << endl;        imshow("img",img);    }}int main(int argc, char **argv){       namedWindow("img");     img = imread("1.jpg", 1);    imshow("img", img);    setMouseCallback("img", onMouse, 0);    waitKey(0);    system("pause");    return 0;}

效果图

0 0