OpenCV:毛玻璃效果

毛玻璃效果的原理,即遍历每一个像素,随机选取这个像素周围的某一个像素,替换当前像素。实现代码如下:

import cv2
import numpy as np
import random

img = cv2.imread('test.png',1)
imgInfo = img.shape
height = imgInfo[0]
width = imgInfo[1]
dst = np.zeros((height,width,3),np.uint8)
mm = 8		# 这里我们选择周围像素的范围距离最大为8像素
for m in range(height-mm):		# -mm是为了防止数组越界,但是会出现图片底部和右侧有8像素黑边的情况,对这一块可以进行-index的操作,在此不做展开
    for n in range(width-mm):
        index = int(random.random()*8)
        (b,g,r) = img[m+index,n+index]
        dst[m,n] = (b,g,r)

cv2.imshow('image',dst)
cv2.waitKey(0)

展示效果如下:
OpenCV:毛玻璃效果_第1张图片

你可能感兴趣的:(计算机视觉)