zoukankan      html  css  js  c++  java
  • [置顶][置顶]opencv图像处理4opencv下鼠标事件

    #include<highgui.h>
    #include<cv.h>
    #include<stdio.h>
    //#include<iostream>
    //鼠标事件
    CvPoint down;
    CvPoint up;
    CvRect rect;
    IplImage *dst;
    void on_mouse(int event,int x,int y,int flags,void *param)
    {
    //鼠标事件分为两个部分,左键按下和左键弹起
        IplImage *image=(IplImage *)param;
        if (event == CV_EVENT_LBUTTONDOWN) //左键按下
        {
            down.y=y;
            down.x=x;
            printf("%d  %d",down.x,down.y);
            cvDestroyWindow("image.roi");
            cvReleaseImage(&dst);

        }
        if (event==CV_EVENT_LBUTTONUP)//左键弹起
        {
              


            up.y=y;
            up.x=x;


    //    cvRectangle(image,down,up,cvScalarAll(0),1,8,0);
    if( (up.y > down.y) && (up.x > down.x))//避免出现错误
    {
            rect.x=down.x;
            rect.y=down.y;
            rect.height=up.y-down.y;
            rect.width=up.x-down.x;
            printf("     %d  %d\n",up.x,up.y);
            cvSetImageROI(image,rect);//设置掩膜
            dst=cvCloneImage(image);//复制图片

            cvNamedWindow("image.roi",CV_WINDOW_AUTOSIZE);
            cvShowImage("image.roi",dst);

    }
        }
        

    }


    int main(int argc,char **argv)
    {   

        IplImage *image;

        image=cvLoadImage("1.bmp",1);

        cvNamedWindow("image",CV_WINDOW_AUTOSIZE);
        cvShowImage("image",image);
        cvSetMouseCallback("image",on_mouse,(void *)image);

        cvWaitKey(0);

        
        cvDestroyAllWindows();
        cvReleaseImage(&image);
    return 0;
    }
  • 相关阅读:
    微软面试题
    20个开源项目托管站点推荐
    iis配置好后,解决打开服务器要输入用户名和密码的问题
    C# 调用带输入输出参数的存储过程
    line-height属性总结
    placeholder的字体样式改变,滚动条的颜色改变,ios日期兼容
    表格使用总结
    网页html结构搭建方法总结
    css中的inline-block
    css常用居中
  • 原文地址:https://www.cnblogs.com/libing64/p/2878762.html
Copyright © 2011-2022 走看看