一起来学opencv:马赛克效果

1,426 阅读1分钟

该案例基于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的矩阵把整体颜色设置为左上角定点颜色,这样马赛克就形成了,如果像让马赛克效果更小或者更大,只要要修矩阵的大小即可。