资源简介
这是一个关于OpenCV的入门练习,压缩文件包中OpenCV包括:编程说明,完整的VS2015工程,全部的源代码,编译结果和测试用图等。
代码片段和文件信息
// Image_ScrollBar.cpp : Defines the entry point for the console application.
//
#include
#include
#include
#include
#include
using namespace std;
double mx = 0 my = 0;
int dx = 0 dy = 0 horizBar_x = 0 vertiBar_y = 0;
bool clickVertiBar = false clickHorizBar = false needScroll = false;
CvRect rect_bar_horiz rect_bar_verti;
void help()
{
printf(
“/n“
“This program demonstrated the use of the cvSetMouseCallback /n“
“for viewing large image with scroll bar in a small window/n“
“created by OpenCV highgui model. (chenyusiyuan 2011-06-24)/n“
“Call:/n“
“./Image_ScrollBar [ ]/n/n“
);
}
void mouse_callback(int event int x int y int flags void* param)
{
if (needScroll)
{
switch (event)
{
case CV_EVENT_LBUTTONDOWN:
mx = x my = y;
dx = 0 dy = 0;
// 按下左键时光标定位在水平滚动条区域内
if (x >= rect_bar_horiz.x && x <= rect_bar_horiz.x + rect_bar_horiz.width
&& y >= rect_bar_horiz.y && y <= rect_bar_horiz.y + rect_bar_horiz.height)
{
clickHorizBar = true;
}
// 按下左键时光标定位在垂直滚动条区域内
if (x >= rect_bar_verti.x && x <= rect_bar_verti.x + rect_bar_verti.width
&& y >= rect_bar_verti.y && y <= rect_bar_verti.y + rect_bar_verti.height)
{
clickVertiBar = true;
}
break;
case CV_EVENT_MOUSEMOVE:
if (clickHorizBar)
{
dx = fabs(x - mx) > 1 ? (int)(x - mx) : 0;
dy = 0;
}
if (clickVertiBar)
{
dx = 0;
dy = fabs(y - my) > 1 ? (int)(y - my) : 0;
}
mx = x my = y;
break;
case CV_EVENT_LBUTTONUP:
mx = x my = y;
dx = 0 dy = 0;
clickHorizBar = false;
clickVertiBar = false;
break;
default:
dx = 0 dy = 0;
break;
}
}
}
void myShowImageScroll(char* title IplImage* src_img
int winWidth = 1000 int winHeight = 700) // 显示窗口大小默认为 1400×700
{
HWND hWnd = (HWND)cvGetWindowHandle(title);
if (hWnd == NULL)
return;
RECT rect;
GetWindowRect(hWnd &rect);
int cw1 = GetSystemMetrics(SM_CXFULLSCREEN); //屏幕大小(不包括任务栏等区域)
int ch1 = GetSystemMetrics(SM_CYFULLSCREEN);
int cw2 = GetSystemMetrics(SM_CXSCREEN); //真正屏幕的大小
int ch2 = GetSystemMetrics(SM_CYSCREEN);
int dw = 10;
int cw = cw1 - 2 * dw;
int ch = ch1 - 2 * dw;
int ww = rect.right - rect.left + 1;
int wh = rect.bottom - rect.top + 1;
if (ww > cw1) ww = cw1;
if (wh > ch1)wh = ch1;
winWidth = ww;
winHeight = wh;
IplImage* dst_img;
CvRect rect_dst // 窗口中有效的图像显示区域
rect_src; // 窗口图像对应于源图像中的区域
int imgWidth = src_img->width
imgHeight = src_img->height
barWidth = 21; // 滚动条的宽度(像素)
double scale_w = (double)imgWidth / (double)winWidth // 源图像与窗口的宽度比值 用以判断是否超出显示范围
scale_h = (double)imgHeight / (double)winHeight; // 源图像与窗口的高度比值 用以判断是否超出显示范围
if (scale_w<1)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2020-01-06 07:04 OpenCV练习12-用滚动条移动图片\
目录 0 2020-01-06 07:02 OpenCV练习12-用滚动条移动图片\test\
目录 0 2018-12-11 19:31 OpenCV练习12-用滚动条移动图片\test\.vs\
目录 0 2018-12-11 19:31 OpenCV练习12-用滚动条移动图片\test\.vs\test\
目录 0 2018-12-11 19:31 OpenCV练习12-用滚动条移动图片\test\.vs\test\v14\
文件 29184 2020-01-03 06:22 OpenCV练习12-用滚动条移动图片\test\.vs\test\v14\.suo
目录 0 2018-12-19 17:47 OpenCV练习12-用滚动条移动图片\test\Debug\
目录 0 2018-12-20 19:19 OpenCV练习12-用滚动条移动图片\test\test\
文件 6675 2018-12-20 19:19 OpenCV练习12-用滚动条移动图片\test\test\main.cpp
文件 298414 2018-12-06 05:43 OpenCV练习12-用滚动条移动图片\test\test\t12.jpg
文件 7374 2018-12-11 19:33 OpenCV练习12-用滚动条移动图片\test\test\test.vcxproj
文件 945 2018-12-11 19:33 OpenCV练习12-用滚动条移动图片\test\test\test.vcxproj.filters
目录 0 2018-12-11 19:33 OpenCV练习12-用滚动条移动图片\test\test\x64\
目录 0 2018-12-20 19:19 OpenCV练习12-用滚动条移动图片\test\test\x64\Debug\
文件 105633 2020-01-03 06:11 OpenCV练习12-用滚动条移动图片\test\test\x64\Debug\main.obj
文件 105360 2018-12-20 17:45 OpenCV练习12-用滚动条移动图片\test\test\x64\Debug\main.obj.enc
文件 239 2020-01-03 06:11 OpenCV练习12-用滚动条移动图片\test\test\x64\Debug\test.log
目录 0 2020-01-03 06:11 OpenCV练习12-用滚动条移动图片\test\test\x64\Debug\test.tlog\
文件 570 2020-01-03 06:11 OpenCV练习12-用滚动条移动图片\test\test\x64\Debug\test.tlog\CL.command.1.tlog
文件 39506 2020-01-03 06:11 OpenCV练习12-用滚动条移动图片\test\test\x64\Debug\test.tlog\CL.read.1.tlog
文件 396 2020-01-03 06:11 OpenCV练习12-用滚动条移动图片\test\test\x64\Debug\test.tlog\CL.write.1.tlog
文件 1164 2020-01-03 06:11 OpenCV练习12-用滚动条移动图片\test\test\x64\Debug\test.tlog\li
文件 3612 2020-01-03 06:11 OpenCV练习12-用滚动条移动图片\test\test\x64\Debug\test.tlog\li
文件 382 2020-01-03 06:11 OpenCV练习12-用滚动条移动图片\test\test\x64\Debug\test.tlog\li
文件 210 2020-01-03 06:11 OpenCV练习12-用滚动条移动图片\test\test\x64\Debug\test.tlog\test.lastbuildstate
文件 1051648 2020-01-03 06:11 OpenCV练习12-用滚动条移动图片\test\test\x64\Debug\vc140.idb
文件 929792 2018-12-20 19:19 OpenCV练习12-用滚动条移动图片\test\test\x64\Debug\vc140.pdb
文件 1294 2018-12-11 19:31 OpenCV练习12-用滚动条移动图片\test\test.sln
文件 33685504 2020-01-03 06:22 OpenCV练习12-用滚动条移动图片\test\test.VC.db
文件 58 2020-01-06 07:02 OpenCV练习12-用滚动条移动图片\test\test.VC.VC.opendb
目录 0 2018-12-11 19:33 OpenCV练习12-用滚动条移动图片\test\x64\
............此处省略5个文件信息
- 上一篇:前端+后台源码.zip
- 下一篇:Redis入门指南+第2版高清完整带目录.pdf
相关资源
- NVIDIAOpticalFlowSDK-79c6cee80a2df9a196f20afd6
- opencv_contrib-3.4.0.zip
- opencv2.4.9源码分析——SIFT
- 用两个摄像头实现,双目标定,双目
- opencv_traincascade训练分类器,手势识别
- opencv3.0交叉编译用parallel.cpp
- 基于opencv的图像识别识别图像中的色
- 基于openCV的识别特定颜色区域
- 基于OpenCV的分水岭算法实现
- QT+opencv+OCR 身份证号码,银行卡号识别
- opencv视频特定颜色区域识别
- 把RGB转换为HSV和HSI然后根据黄色和蓝
- opencv视觉测距
- 基于Qt和opencv的身份证号码识别系统
- opencv_ffmpeg249.dll
- SfM稀疏三维点云重建--完整工程文件
- 基于opencv的数人头程序源代码
- 利用OpenCV中的Stitcher类实现全景图像拼
- opencv实现的sift算法源码,包含了图像
- openCV 上的小波变换
- 基于OPENCV的车牌识别系统设计
- 617张国内车牌60-17bmp图片用于OpenCV正样
- hog特征提取,c版本代码
- 基于Qt5.8+OpenCV3.2的Basler多相机触发开
- 基于Opencv实现的图像纠偏
- ImageWatch2019.vsix
- SIFT特征提取+匹配
- 基于SIFT算法的图像拼接.rar
- opencv4.1.1+contrib完整版.zip
- OpenCV3.3+contrib-master,VS2013编译后的l
评论
共有 条评论