利用opencv实现图像马赛克处理的三种方法

前言:本文就图像的马赛克处理,基于opencv提出了三种解决方案,并详细地介绍了三种方法的原理、示例、问题及问题的解决方案。

方法一

原理介绍:利用resize()将图片先缩小,再放大

代码示例:

import cv2
import numpy as np

if __name__ =='__main__':
    img=cv2.imread('D:\\26059\\Desktop\\20220630_python_learning\\CSDN_opencv_learning\\4.jpg')
    print(img.shape)#打印图片长宽
    cv2.namedWindow("image",cv2.WINDOW_NORMAL)#自由改变显示框大小

    img2=cv2.resize(img,(49,35))
    img3=cv2.resize(img2,(490,350))

    cv2.imshow('image',img3)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

利用opencv实现图像马赛克处理的三种方法

问题分析:使图像变的模糊,并没有达到马赛克的真正效果

解决方案:如果是想对图片进行马赛克处理,不太建议这种方法

方法二

原理介绍:1.先使用resize()将图片缩小按照一定比例缩小,原图像素为490*350,如下图代码示例cv2.resize(img,(49,35))即是将图像缩小十倍。

2.接着使用repeat(),分别将图像的横轴和竖轴放大N倍,(图中为10倍)

代码示例:

import cv2
import numpy as np

img=cv2.imread('D:\\26059\\Desktop\\20220630_python_learning\\CSDN_opencv_learning\\7.png')
cv2.namedWindow("image",cv2.WINDOW_NORMAL)#自由改变显示框大小

img2=cv2.resize(img,(49,35))
img3=np.repeat(img2,10,axis=0)
img4=np.repeat(img3,10,axis=1)

cv2.imshow("image",img3)
cv2.imwrite("image.png",img3)
cv2.waitKey(0)
cv2.destroyAllWindows()

利用opencv实现图像马赛克处理的三种方法

问题分析:相较于方法一的图像简单模糊处理,方法二能够较好的实现图像的马赛克处理,在利用repeat()对图像进行横轴与数轴放大时,通过调整N的数值大小,也能够较好的实现马赛克程度的调整。

此方式的问题在于,无法确定像素的选取,即无法确定是对某一块像素颜色进行加权处理,还是随机选取,或者采用其他方式。

解决方法:针对上述的问题,我所想到的解决方法是先对整个图像进行遍历,选取出一定像素颜色范围,对该范围利用上述方法进行处理。

方法三

原理介绍:利用切片,每隔n个取一个像素点,剥离了图像的细节

代码示例:

import cv2
import numpy as np

if __name__ =='__main__':
    img=cv2.imread('D:\\26059\\Desktop\\20220630_python_learning\\CSDN_opencv_learning\\4.jpg')
    print(img.shape)#打印图片长宽
    cv2.namedWindow("image",cv2.WINDOW_NORMAL)#自由改变显示框大小

    img2=img[::15,::15]

    cv2.imshow('image',img2)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

利用opencv实现图像马赛克处理的三种方法

利用opencv实现图像马赛克处理的三种方法

问题分析:上述图像中,图一的n值取15,图二的n值取50,通过对比,可以很明显的发现,图二的信息缺失更多,通过改变N值,也能够很好的实现图像马赛克程度的变化。

此种方法的问题在于,每n个像素取一个限制了像素选取的自由度。

Original: https://blog.csdn.net/weixin_62602550/article/details/125638992
Author: 某网工代码人
Title: 利用opencv实现图像马赛克处理的三种方法

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/520021/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球