opencv 鼠标选取图像感兴趣区域
来源:互联网 发布:济宁网络问政平台登录 编辑:程序博客网 时间:2024/04/26 08:52
我们在做工程应用时,经常少不了鼠标的交互,这篇博客就是关于在图像上使用鼠标选取感兴趣区域
#include <opencv2/core/core.hpp>Rect selection;Point origin;Mat frame;bool trackObject = false;bool selectObject;void onMouse(int event, int x, int y, int, void*){ if (selectObject) { selection.x = MIN(x, origin.x); selection.y = MIN(y, origin.y); selection.width = std::abs(x - origin.x); selection.height = std::abs(y - origin.y); selection &= Rect(0, 0, frame.cols, frame.rows); } switch (event) { case CV_EVENT_LBUTTONDOWN: origin = Point(x, y); selection = Rect(x, y, 0, 0); selectObject = true; break; case CV_EVENT_LBUTTONUP: selectObject = false; if (selection.width > 0 && selection.height > 0) trackObject = true; break; default: break; }}int main(int argc, const char* argv[]){ Rect trackWindow; bool isUseMouse=true; VideoCapture video; video.open("videoName.mp4"); if (!video.isOpened()){ std::cout << "open video error" << endl; return -1; } Mat image; if (isUseMouse){ string winName = "choose_windows"; namedWindow(winName, WINDOW_AUTOSIZE); setMouseCallback(winName, onMouse, 0); double interval = 1.0 / video.get(CV_CAP_PROP_FPS); while (true) { if (trackObject) break; video.read(frame); if (frame.empty()) return -1; frame.copyTo(image); if (selectObject && selection.width > 0 && selection.height > 0) { Mat roi(frame, selection); bitwise_not(roi, roi); } imshow(winName, frame); int key = waitKey(int(interval * 1000)); if (key == 27) return -1; } trackWindow = selection;/*do your things*/ destroyWindow(winName); } else { video.read(image); } return 0;}
0 0
- opencv 鼠标选取图像感兴趣区域
- OpenCV:设置图像的感兴趣区域(ROI)
- opencv图像及视频感兴趣区域设置
- opencv将图像感兴趣区域截取出来
- OpenCV中感兴趣区域的选取与检测(一)
- OpenCV中感兴趣区域的选取与检测(二)
- OpenCV中感兴趣区域的选取与检测(一)
- OpenCV中感兴趣区域的选取与检测(一)
- opencv鼠标选定感兴趣区域进行目标检测
- Opencv感兴趣区域-ROI
- opencv取消感兴趣区域
- OpenCV笔记5:设置图像的感兴趣区域(ROI)
- OpenCV设置感兴趣区域ROI,对图像进行局部处理
- OPENCV图像处理基础(二)感兴趣区域ROI
- 学习openCV之读取图像和感兴趣区域融合
- opencv图像感兴趣区域提取时超出范围怎么办
- opencv ROI(感兴趣区域)与掩码操作 ROI图像融合
- Opencv关于两图像感兴趣区域划分、拼合详解
- [C++](转载)虚函数表解析
- marquee实现文字滚动效果
- Docker实战小记
- [深度学习论文笔记][ECCV 16]Embedding Deep Metric for Person Re-identication A Study Against Large Variations
- 项目搭建中的遇到的问题
- opencv 鼠标选取图像感兴趣区域
- 存储登录密码及账号
- 爬虫学习日记二:相关图片的爬取(附代码)
- 面向对象高级( 随手记-4)
- 从np.random.normal()到正态分布的拟合
- 矩阵计算一些重要的结论及其证明
- Zoj 3956 Course Selection System【01背包】
- Telephone--短信发送/接收流程
- JZOJ1275.【USACO题库】2.4.5 Fractions to Decimals分数化小数