• 大小: 13.5MB
    文件类型: .zip
    金币: 2
    下载: 1 次
    发布日期: 2023-06-17
  • 语言: 其他
  • 标签: OpenCV  

资源简介

这是一个关于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\link.command.1.tlog
     文件        3612  2020-01-03 06:11  OpenCV练习12-用滚动条移动图片\test\test\x64\Debug\test.tlog\link.read.1.tlog
     文件         382  2020-01-03 06:11  OpenCV练习12-用滚动条移动图片\test\test\x64\Debug\test.tlog\link.write.1.tlog
     文件         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个文件信息

评论

共有 条评论