opencv 初学添加slider模糊图像以及鼠标交互
来源:互联网 发布:淘宝账号违规被冻结 编辑:程序博客网 时间:2024/05/21 09:29
刚刚学到如何在窗口中添加滑动条,通过滑动条来控制图像的模糊程度
点击鼠标左键添加circle
#include <iostream>#include <string>#include <sstream>#include "opencv2/core.hpp"#include "opencv2/highgui.hpp"#include "opencv2/imgproc.hpp"using namespace cv;using namespace std;int blurAmount = 15;static void onChange(int pos, void* userInput);static void onMouse(int event, int x, int y, int, void* userInput);int main(){Mat img = imread("1.jpg");namedWindow("img");createTrackbar("img", "img", &blurAmount, 30, onChange, &img);setMouseCallback("img", onMouse, &img);onChange(blurAmount, &img);waitKey(0);destroyAllWindows();return 0;}static void onChange(int pos, void* userData){if (pos <= 0){return;}Mat imgBlur;Mat* img = (Mat*)userData;blur(*img, imgBlur, Size(pos, pos));imshow("img", imgBlur);}static void onMouse(int event, int x, int y, int, void* userInput){if (event != EVENT_LBUTTONDOWN){return;}Mat* img = (Mat*)userInput;circle(*img, Point(x, y), 10, Scalar(0, 255, 0), 3);onChange(blurAmount, img);}
阅读全文