读取图片,并通过鼠标交互,在图片上选择一块矩形区域,然后把这个矩形区域的子图像显示出来
2014-07-11 11:18
621 查看
// ROI.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include "cv.h" #include "cvaux.h" #include "highgui.h" IplImage* srcImg; CvRect ROI_rect; bool flag = false;//true表示鼠标按下状态 CvScalar color = CV_RGB(255, 0, 0); void on_mouse(int event, int x, int y, int flags, void* param) { switch (event) { case CV_EVENT_LBUTTONDOWN: ROI_rect.x = x; ROI_rect.y = y; cvDestroyWindow("wnd2"); flag = true; break; case CV_EVENT_MOUSEMOVE: if (flag){ ROI_rect.width = abs(ROI_rect.x - x); ROI_rect.height = abs(ROI_rect.y - y); IplImage* temp = cvCloneImage(srcImg); cvRectangle(temp, cvPoint(ROI_rect.x, ROI_rect.y), cvPoint(x, y), color); cvShowImage("wnd1", temp); cvReleaseImage(&temp); } break; case CV_EVENT_LBUTTONUP: if (ROI_rect.x != x && ROI_rect.y != y){ int xx = MIN(ROI_rect.x, x); int yy = MIN(ROI_rect.y, y); cvSetImageROI(srcImg, cvRect(xx, yy, ROI_rect.width, ROI_rect.height)); cvNamedWindow("wnd2", 1); cvShowImage("wnd2", srcImg); cvResetImageROI(srcImg); } flag = false; break; default: break; } } int _tmain(int argc, _TCHAR* argv[]) { srcImg = cvLoadImage("src.bmp", -1); cvNamedWindow("wnd1",1); cvShowImage("wnd1", srcImg); cvSetMouseCallback("wnd1", on_mouse,0); cvWaitKey(0); cvReleaseImage(&srcImg); cvDestroyWindow("wnd1"); return 0; }
相关文章推荐
- 4:在图像上通过鼠标交互,画三条线段并显示出来。
- 在C#中 从一个picturebox中 按住鼠标左键不放 画一块区域后,另外一个picturebox(在一个winform 窗体上有两个picturebox )上马上把对应的截取图像显示出来
- OpenCV截取图像的任意形状区域,规则的图形(圆、椭圆、矩形),不规则鼠标自己选择
- 使用asp.net将图片上传并存入SqlServer中,然后从SqlServer中读取并显示出来
- HALCON学习-读取显示图像、矩形区域配置
- 使用asp.net将图片上传并存入SqlServer中,然后从SqlServer中读取并显示出来
- 使用asp.net将图片上传并存入SqlServer中,然后从SqlServer中读取并显示出来
- 如何在图像上用鼠标绘画矩形并且能够显示出来
- OpenCV 鼠标响应函数 ,用鼠标选中一块图像区域,然后计算选中的ROI区域的统计直方图
- Win form 在pictureBox控件中实现选择图片然后以二进制方式保存到数据库。以及在pictureBox控件显示出来
- 使用asp.net将图片上传并存入SqlServer中,然后从SqlServer中读取并显示出来
- 在android中用NetworkImageView读取网络图片并通过ListView显示出来
- 02-Opencv 之打开一张图片,然后用鼠标切图然后显示出来
- 做一个WF窗体的启动项,就是让这个程序启动的时候首先会有一个图片出来,然后开始程序
- 如何将pictureBox里的图片保存到数据库,然后从数据读取显示
- 读取中文文本,将每个字存入向量,然后显示出来
- 视线语音鼠标 4 C#图像的读取和显示
- 用opencv读取图像的每个像素值,鼠标点击获取每一个点,并显示像素
- 把图片文件夹中的子文件夹以下拉框的形式展示出来。并且选择不同的文件夹显示出各文件夹中的图片
- Control Study -> 当鼠标在图片上移动时,放大图像区域