本文实例为大家分享了OpenCV实现马赛克和毛玻璃滤镜特效的具体代码,供大家参考,具体内容如下
一、马赛克效果
马赛克的实现原理是把图像上某个像素点一定范围邻域内的所有点用邻域内随机选取的一个像素点的颜色代替,这样可以模糊细节,但是可以保留大体的轮廓。
以下OpenCV程序实现马赛克效果,通过鼠标左键在图像上划定马赛克的矩形框。
代码:
#include
#include
#include
#include
using namespace cv;
using namespace std;
Mat inputImage;
Mat inputImage_mosaic;
Mat inputImage_clone;
//马赛克的大小
int neightbourhood = 20;
//记录鼠标的状态,0为鼠标左键未按下或弹起,1为鼠标左键按下
int mouseStatus = 0;
void onMouse(int events, int x, int y, int flag, void* ustg);
//创建马赛克图片
void createMosaicImage(Mat inputMat, Mat& outputMat, int size);
//设置马赛克区域
void setMosaic(Mat& inputMat, Rect rect);
int mainFun(void) {
inputImage = imread("D:\\test\\12.jpg");