python-opencv-图像毛玻璃模糊效果,,毛玻璃其实就是磨砂玻
python-opencv-图像毛玻璃模糊效果,,毛玻璃其实就是磨砂玻
毛玻璃其实就是磨砂玻璃,图像经过毛玻璃模糊效果后能够模糊的看清背后的风景,让人感觉有种朦胧美,让界面看上去很有层次感。
我们知道了图像马赛克效果是通过设置一个指定大小的像素块并将其中的所有像素点设置成统一值实现的。与图像的马赛克效果类似,图像的毛玻璃模糊效果也是通过修改像素点的颜色值来实现的,只不过是通过像素点随机替换来修改像素点的颜色值
如上图所示,左边为原图像的某5个像素点,我们假设随机替换值为5,即随机替换的范围为0-4。那么对于原图像上的某个像素点(x,y)的颜色值,我们将用原图像上的另一个像素点(x+随机值,y+随机值)的颜色值进行替换,即(x,y)=(x+随机值,y+随机值)。经过一系列像素点变换后,就得到了类似右边的图像,从而实现图像的毛玻璃模糊效果。
首先按照惯例使用imread()函数读取原图像的图像数据,并通过shape属性获取出图像的宽高信息。接着新建一个图像空模板,大小和形状与原图像保持一致。同时设置随机替换值,这里我们设置为5。然后开始遍历像素点,利用我们设置的随机替换值使用random模块的random.randint函数产生一个随机整数值,对像素点进行随机替换。
import cv2import numpy as npimport randomimg = cv2.imread("2013.jpg",1) #读取一张图片,彩色cha=img.shapeheight,width,deep=chacv2.imshow(‘img‘,img)dst=np.zeros(cha,np.uint8)randon_v=5 #用来替换的范围--这个值越大毛玻璃效果越明显#防止越界for m in range(height-randon_v): #毛玻璃效果 for n in range(width-randon_v): index=random.randint(1,randon_v) (b,g,r)=img[m+index,n+index] dst[m,n]=(b,g,r)cv2.imshow(‘dst‘,dst)cv2.waitKey()
右边的图就实现了图像的毛玻璃模糊效果,根据我们设置的随机替换值大小,毛玻璃的模糊程度会随之不同。随机替换值越大,毛玻璃模糊程度也就越大。由于我们未对边界值进行处理,因此经过毛玻璃模糊效果处理后的图像右边和下边都有黑色的边界。如果要处理,最简单的可以遍历黑色边界像素,用附近像素的颜色值进行填充即可。
效果图:
下面我把随机值改为10:
import cv2import numpy as npimport randomimg = cv2.imread("2013.jpg",1) #读取一张图片,彩色cha=img.shapeheight,width,deep=chacv2.imshow(‘img‘,img)dst=np.zeros(cha,np.uint8)randon_v=10 #用来替换的范围--这个值越大毛玻璃效果越明显#防止越界for m in range(height-randon_v): for n in range(width-randon_v): index=random.randint(1,randon_v) (b,g,r)=img[m+index,n+index] dst[m,n]=(b,g,r)cv2.imshow(‘dst‘,dst)cv2.waitKey()
效果图:
python-opencv-图像毛玻璃模糊效果
相关内容
- 利用python爬取贝壳网租房信息,python爬虫接单网, 最近
- Python 操作 Outlook 邮箱,注册自己的电子邮箱号,#!/usr/
- 同时安装2个版本的python,python3哪个版本好用,使用pip当
- Python爬取网页全代码,python爬虫万能代码,#爬取京东全
- Python与NodeJS的比较,2020年开发者该如何选择,2020年华
- Python中利用Tesseract软件来识别图片中的英文与中文,
- python中类与对象之继承,python类和对象理解,面对对象的
- Python3 upper()方法,python中lower什么意思,描述Python u
- PHP/Python---百钱百鸡简单实现及优化,,公鸡5块钱一只,
- 用python计算圆周率,,from rando
评论关闭