一、马赛克效果
马赛克的实现原理是把图像上某个像素点一定范围邻域内的所有点用邻域内随机选取的一个像素点的颜色代替,这样可以模糊细节,但是可以保留大体的轮廓。
以下OpenCV程序实现马赛克效果,通过鼠标左键在图像上划定马赛克的矩形框。
#include
#include
using namespace cv;
Mat imageSourceCopy; //原始图像
Mat imageSource; //原始图像拷贝
int neightbourHood = 9; //马赛克上每个方框的像素大小
RNG rng;
int randomNum; //邻域内随机值
Point ptL; //左键按下时坐标
Point ptR; //右键按下时坐标
//鼠标回掉函数
void onMouse(int event, int x, int y, int flag, void *ustg);
int main()
{
imageSourceCopy = imread("Test.jpg");
imageSource = imageSourceCopy.clone();
//imshow("马赛克", imageSourceCopy);
namedWindow("马赛克");
setMouseCallback("马赛克", onMouse);
waitKey();
}
void onMouse(int event, int x, int y, int flag, void *ustg)
{