【OpenCV】视频取坐标

今天实现了视频播放以后暂停获取鼠标点击处坐标的功能。

#include <iostream>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/opencv.hpp>
#include <opencv2/imgproc/imgproc.hpp>
using namespace cv;
using namespace std;

Mat frame;  

void on_mouse( int event, int x, int y, int flags, void* ustc)  
{  
    CvFont font;  
    cvInitFont(&font, CV_FONT_HERSHEY_SIMPLEX, 0.5, 0.5, 0, 1, CV_AA);  
          
    if( event == CV_EVENT_LBUTTONDOWN )  
    {  
        CvPoint pt = cvPoint(x,y);  
        char temp[16];  
        sprintf(temp,"(%d,%d)",pt.x,pt.y);  
        putText(frame,temp, pt, CV_FONT_HERSHEY_COMPLEX, 1, Scalar(255, 255, 255,0));  
        circle( frame, pt, 2,cvScalar(255,0,0,0) ,CV_FILLED, CV_AA, 0 );  
        imshow( "Movie", frame );  
    }   
}

int main()  
{
    VideoCapture capture("D:\\test.wmv");  
    double rate = capture.get(CV_CAP_PROP_FPS);  
    cout<<"帧率为:"<<rate<<endl;  
    namedWindow("Movie");  
    int delay = 1000/rate;
    bool isStart = 0;
  
    while(1)  
    { 
        if(!capture.read(frame))  
        {  
            cout<<"读取视频失败"<<endl;  
            return -1;    
        }

        imshow("Movie",frame);
        if (!isStart)
        {
             waitKey(0);
             isStart = 1;
        }

        int c = waitKey(delay);

        if((char) c == 27) 
        {  
            break;
        } 

        else if( c >= 0)  
        {   
            cvSetMouseCallback( "Movie", on_mouse, 0 );
            imshow("Movie",frame);
            int controlkey = waitKey(0);
            if((char) controlkey == 27) 
            {  
                break;
            }
        }        
    }


    capture.release();  
    return 0;  
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

m0_72429728

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值