opencv显示大图--利用鼠标在固定窗口内显示大图
来源:互联网 发布:php tmp目录 编辑:程序博客网 时间:2024/05/19 23:57
opencv显示大图–利用鼠标在固定窗口内显示大图
opencv没有直接用于显示大图的函数,当显示图像大于屏幕尺寸的时候就不好显示。于是就想到利用setMouseCallback()函数来利用鼠标移动图片,效果见代码,暂时未加入放大缩小功能。
#pragma execution_character_set("utf-8")#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;using namespace std;Mat test = imread("test.jpg"); //测试图像void on_mouse(int event, int x, int y, int flags, void *userdata);int main(){ int window_w = 800; int window_h = 800; if (!test.data) { cout << "load image failed !" << endl; return 0; } namedWindow("test", 1); Mat temp = test(Rect(0, 0, window_w, window_h)); int udata[4] = { window_w, window_h, test.cols, test.rows }; setMouseCallback("test", on_mouse, udata); imshow("test", temp); moveWindow("test", 40, 40); waitKey(); return 0;}void on_mouse(int event, int x, int y, int flags, void *userdata){ int *window_param = (int *)userdata; static int start_x = 0; static int start_y = 0; int w = *window_param; int h = *(window_param + 1); int img_w = *(window_param + 2); int img_h = *(window_param + 3); static Point ld = Point(0, 0); static Point ru = Point(0, 0); if (event == EVENT_LBUTTONDOWN) { ld = Point(x, y); } if (event == CV_EVENT_LBUTTONUP) { ru = Point(x, y); //cout << "origin:" << ld << endl; //cout << "now:" << ru << endl; start_x = (ld.x - ru.x) * 1 + start_x; start_y = (ld.y - ru.y) * 1 + start_y; start_x = start_x > (img_w - w - 1) ? (img_w - w - 1) : start_x < 0 ? 0 : start_x; start_y = start_y >(img_h - h - 1) ? (img_h - h - 1) : start_y < 0 ? 0 : start_y; //cout << start_x << endl; //cout << start_y << endl; Rect roi(start_x, start_y, w, h); Mat temp = test(roi); imshow("test", temp); }}
0 0
- opencv显示大图--利用鼠标在固定窗口内显示大图
- 利用Jquery实现鼠标滑动显示大图
- 鼠标移动显示大图
- 鼠标放小图上显示大图
- opencv显示大图
- 鼠标滑过显示大图
- 鼠标移到小图上显示大图
- 缩略图显示和鼠标悬浮大图显示
- Jquery实现鼠标放在图片上面显示大图效果
- css-鼠标移上去显示大图
- 鼠标放上去小图显示大图
- jquery 鼠标移上去显示大图片
- 鼠标滑过显示图片大图效果
- JS实现鼠标移上图片显示、大图显示
- jQuery-鼠标经过显示大图并跟随鼠标效果插件
- 点击图片在弹出层显示大图
- 在DialogFragment中显示大图片
- 淘宝中的一个鼠标感应大图(鼠标经过显示大图)
- 异步操作的一个小案例,在h1中加入一个文本内容(GET请求)
- 第21节:Scala文件和xml操作(上)
- HAUTOJ G题
- 分而治之(D&C)
- 检测全局鼠标动作
- opencv显示大图--利用鼠标在固定窗口内显示大图
- LeetCode (开始)
- Android全套动画使用技巧
- CoordinatorLayout的使用如此简单
- JWS的一次排错经历
- Android内核的编译和调试
- LIBSVM安装及SVM介绍
- LightOJ
- java堆外内存