今天在这里给大家分享一下,图片中马赛克的形成。
在生活中,有马赛克的图片很常见,特别是一些采访犯罪分子的时候。当时你有没有想过马赛克是怎样生成的的?
马赛克的的原理也比较简单,实现过程基本上可以分为一下几个步骤:
选中需要生成马赛克的目标区域
将目标区域分成许多区域(为了好看,一般尽可能多,太多了也是不行的,而且大小尽量相等)
在每一区域中,随机选择一个像素点,用该像素点代替该区域中的所有像素点
像素点的选择可以随意,例如自己给定。
下面是python代码实现
import cv2 as cv import numpy as np img = cv.imread('2.jpg',1) imginfo = img.shape height = imginfo[0] width = imginfo[1] dst = np.zeros((height,width,3),np.uint8) for i in range(100,200,10): #生产马赛克的目标区域 for j in range(200,250,10): #if j%10==0 and i%10 == 0: for m in range(0,10): #区域大小为 10 * 10 for n in range(0,10): img[i+m,j+n] = img[i,j] #用该区域的第一个像素点替换掉其他的像素点 cv.imshow('aa',img) cv.waitKey(0)
thank for your time!!
公众号:FPGA之旅