鼠标截取图像c++风格
2014-04-25 14:07
204 查看
本人新手一枚,最近在做视频处理方面毕设,运用鼠标截取图像对相机进行标定。确切的说是得到图像中有效像素的位置信息,为了防止非感兴趣像素的影响,所以想到先用鼠标截取图像中的一部分,进而得到相应坐标。
在前辈dayo的博客中曾看到这方面的代码,是C风格的,但是由于博客中代码并不完整,直接粘来用不了,所以自行改为c++风格代码,完整代码如下,以供参考,欢迎指正:
实验效果如下图:
在前辈dayo的博客中曾看到这方面的代码,是C风格的,但是由于博客中代码并不完整,直接粘来用不了,所以自行改为c++风格代码,完整代码如下,以供参考,欢迎指正:
#include "cv.h" #include "highgui.h" #include <iostream> #include <string> #include <opencv2/opencv.hpp> using namespace cv; using namespace std; Mat inpaint_mask; Mat img0 ; Mat img; Point prev_pt (-1,-1); Mat segImage; void on_mouse( int event, int x, int y, int flags, void* zhang) { if( !img.data ) return; if( event == CV_EVENT_LBUTTONUP || !(flags & CV_EVENT_FLAG_LBUTTON) ) prev_pt = Point(-1,-1);//初始化 else if( event == CV_EVENT_LBUTTONDOWN ) prev_pt = Point(x,y); else if( event == CV_EVENT_MOUSEMOVE && (flags & CV_EVENT_FLAG_LBUTTON) ) {//手一直在绘画 Point pt = Point(x,y); if( prev_pt.x < 0 ) prev_pt = pt; line( inpaint_mask, prev_pt, pt, Scalar(255,255,255), 3, 8, 0 ); line( img, prev_pt, pt, Scalar(255,255,255), 3, 8, 0 ); prev_pt = pt; imshow( "image", img ); imshow("ROI",inpaint_mask); } if(event == CV_EVENT_LBUTTONUP) { floodFill(inpaint_mask,Point(x,y),Scalar(255,255,255)); imshow("ROI",inpaint_mask); } img0.copyTo(segImage,inpaint_mask); imshow("dst",segImage); } int main( int argc, char** argv ) { img0=imread("lena.jpg"); img0.copyTo(img); Mat mask(img.size(),img.type(),Scalar(0)); mask.copyTo(inpaint_mask); mask.copyTo(segImage); imshow( "image", img ); imshow("ROI",inpaint_mask); setMouseCallback( "image", on_mouse, 0 ); waitKey(); return 0; }
实验效果如下图:
相关文章推荐
- 在OpenCV中利用鼠标绘制矩形和截取图像的矩形区域
- opencv2 使用鼠标绘制矩形并截取和保存矩形区域图像
- opencv2 使用鼠标绘制矩形并截取和保存矩形区域图像
- [good]opencv2 使用鼠标绘制矩形并截取和保存矩形区域图像
- opencv鼠标绘制矩形和截取图像的矩形区域
- C/C++ BMP(24位真彩色)图像处理(2)------图像の截取
- OpenCV鼠标绘制矩形和截取图像的矩形区域
- C#图像处理(各种旋转、改变大小、柔化、锐化、雾化、底片、浮雕、黑白、滤镜效果,滤波,图像截取) 对图片的处理 : 亮度调整 抓屏 翻转 随鼠标画矩形
- OpenCV学习笔记(18):在OpenCV中利用鼠标绘制矩形和截取图像的矩形区域
- opencv-- 使用鼠标绘制矩形并截取和保存矩形区域图像
- 利用鼠标绘制矩形和截取图像的矩形区域并保存(OpenCV2.4.5)
- 用鼠标截取图像并保存(2)
- opencv 鼠标截取图像
- opencv2 使用鼠标绘制矩形并截取和保存矩形区域图像
- opencv2 使用鼠标绘制矩形并截取和保存矩形区域图像
- 在OpenCV中利用鼠标绘制矩形和截取图像的矩形区域
- 用鼠标截取矩形图像并保存(1)
- 2.9 opencv2 使用鼠标绘制矩形并截取和保存矩形区域图像
- opencv2 使用鼠标绘制矩形并截取和保存矩形区域图像
- opencv2 使用鼠标绘制矩形并截取和保存矩形区域图像