第一种方法:将图片改变尺寸,使图片变小,最后在放大,使细节被压缩,图片模糊
废话不多说直接上代码
原图片
import cv2
import numpy as np
if __name__ == '__main__':
img =cv2.imread('./456.jpg')
print(img.shape)
#马赛克方式一:
img2=cv2.resize(img,(34,25))
img3=cv2.resize(img2,(45,67))
img4=cv2.resize(img3,(300,300))
cv2.imshow('bao',img4)
cv2.waitKey(0)
cv2.destroyAllWindows()
第二种方法:改变图片尺寸使图片像素点纵轴和横轴重复10次,重而模糊细节,改变图片的像素,从而获得马赛克效果
import cv2
import numpy as np
if __name__ == '__main__':
img =cv2.imread('./456.jpg')
print(img.shape)
# 马赛克方式二:
img2=cv2.resize(img,(35,23))
img3=np.repeat(img2,10,axis=0)
img4=np.repeat(img3,10,axis=1)
cv2.imshow('bao',img4)
cv2.waitKey(0)
cv2.destroyAllWindows()
第三种马赛克方式:
每隔50个像素取出一个像素,使其细节被剥离,重而达到马赛克的效果
import cv2
import numpy as np
if __name__ == '__main__':
img =cv2.imread('./456.jpg')
print(img.shape)
#马赛克方式三
img2=img[::50,::50] #每50个取出一个像素,细节被剥离
cv2.namedWindow('bao',flags=cv2.WINDOW_NORMAL)
cv2.resizeWindow('bao',350,232)
cv2.imshow('bao',img2)
cv2.waitKey(0)
cv2.destroyAllWindows()