OpenCV-鼠标滚轮控制图像缩放

// 鼠标滚轮控制图像缩放

/**

载入一张图像,滑动鼠标滚轮可以缩放图像大小

**/

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 :图像缩放的插值算法类型

OpenCV-鼠标滚轮控制图像缩放_第1张图片

代码:


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:"<

结果图:

放大:

OpenCV-鼠标滚轮控制图像缩放_第2张图片

缩小:

OpenCV-鼠标滚轮控制图像缩放_第3张图片

你可能感兴趣的:(opencv,opencv,c++)