OpenCV 高级图形用户界面(4)获取鼠标滚轮事件增量值的函数 getMouseWheelDelta 的使用--代码示例
最编程
2024-10-13 14:10:28
...
#include <iostream>
#include <opencv2/opencv.hpp>
// 鼠标回调函数
void onMouse( int event, int x, int y, int flags, void* param )
{
if ( event == cv::EVENT_MOUSEWHEEL || event == cv::EVENT_MOUSEHWHEEL )
{
int delta = cv::getMouseWheelDelta( flags );
std::cout << "Mouse wheel delta: " << delta << std::endl;
if ( event == cv::EVENT_MOUSEWHEEL )
{
if ( delta > 0 )
{
std::cout << "Forward scrolling." << std::endl;
}
else
{
std::cout << "Backward scrolling." << std::endl;
}
}
else if ( event == cv::EVENT_MOUSEHWHEEL )
{
if ( delta > 0 )
{
std::cout << "Right scrolling." << std::endl;
}
else
{
std::cout << "Left scrolling." << std::endl;
}
}
}
}
int main()
{
// 加载图像
cv::Mat img = cv::imread( "/media/dingxin/data/study/OpenCV/sources/images/hawk.jpg", cv::IMREAD_COLOR );
if ( img.empty() )
{
std::cerr << "Error: Image not found!" << std::endl;
return -1;
}
// 创建窗口
cv::namedWindow( "Image Window" );
// 设置鼠标回调函数
cv::setMouseCallback( "Image Window", onMouse, nullptr );
// 显示图像
cv::imshow( "Image Window", img );
// 等待键盘输入
cv::waitKey( 0 );
// 关闭所有窗口
cv::destroyAllWindows();
return 0;
}