// 鼠标滚轮控制图像缩放
/**
载入一张图像,滑动鼠标滚轮可以缩放图像大小
**/
1、鼠标响应函数:void setMouseCallback(const String& winname, MouseCallback onMouse, void* userdata = 0);
winname:进行监控事件的窗口名称
onMouse:响应处理事件函数
userdata :传递给响应函数的参数
2、鼠标滚轮响应:
value = getMouseWheelDelta(flags); // value > 0 向上 value < 0 向下
3、void resize( InputArray src, OutputArray dst, Size dsize, double fx = 0, double fy = 0, int interpolation = INTER_LINEAR );
src:输入图像
dst:输出图像
dsize:输出图像的尺寸
fx :水平方向上的缩放系数,当fx为0时,将由公式 (double)dsize.width/src.cols 计算得到
fy:垂直方向上的缩放系数,如果fy为0,将由公式 (double)dsize.height/src.rows 计算得到
interpolation :图像缩放的插值算法类型
代码:
static void on_Mouse(int event, int x, int y, int flags, void* userdata)
{
// 获得图像
Mat image = *(Mat*)userdata;
Mat imgzoom;
int value;
// 判断鼠标事件
if (event == EVENT_MOUSEWHEEL)
{
// 获取鼠标滚轮的方向
value = getMouseWheelDelta(flags);
if (value > 0) // 向上
{
// 放大
cout <<"h:"<
结果图:
放大:
缩小: