c++鼠标点击输出翻转图片
时间: 2023-07-19 17:23:27 浏览: 125
图片翻转VC++
可以使用OpenCV库来实现鼠标点击事件,点击图片时,将图片进行水平翻转并输出翻转后的图像。下面是一个示例代码:
```c++
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
bool flip_flag = false; // 默认不翻转
void onMouse(int event, int x, int y, int flags, void* param)
{
if (event == EVENT_LBUTTONDOWN) // 左键点击
{
flip_flag = !flip_flag; // 点击后翻转标志取反
}
}
int main()
{
// 读入图片
Mat img = imread("test.jpg");
namedWindow("Image", WINDOW_NORMAL);
setMouseCallback("Image", onMouse, 0);
while (true)
{
Mat img_show;
if (flip_flag) // 如果需要翻转
{
flip(img, img_show, 1); // 进行水平翻转
}
else
{
img_show = img.clone(); // 不翻转,直接显示原图
}
imshow("Image", img_show);
char key = waitKey(30);
if (key == 27) // 按下ESC键退出循环
{
break;
}
}
return 0;
}
```
在上面的代码中,我们使用了`setMouseCallback`函数来设置鼠标回调函数。每次左键点击时,会将翻转标志取反。在循环中,根据翻转标志来决定是否进行水平翻转并显示翻转后的图像。按下ESC键可以退出循环。
注意:在使用OpenCV库之前,需要先安装OpenCV库并配置好环境变量。
阅读全文