该案例基于opencv4.x版本编写
代码地址:github.com/gudepeng/st…
1.代码
import cv2
img = cv2.imread("./img/opencv.jpg", cv2.IMREAD_COLOR)
(h, w, c) = img.shape
for m in range(250, 350):
for n in range(10, 350):
if m % 5 == 0 and n % 5 == 0:
for i in range(0, 5):
for j in range(0, 5):
(b, g, r) = img[m, n]
img[i + m, j + n] = (b, g, r)
cv2.imshow('dst', img)
cv2.waitKey(0)
2.效果
3.讲解
马赛克效果其实就是把临近范围内的点设置成该点的颜色。 如例子中的代码,就是找到要打马赛克的地方,然后每5*5的矩阵把整体颜色设置为左上角定点颜色,这样马赛克就形成了,如果像让马赛克效果更小或者更大,只要要修矩阵的大小即可。