• python-opencv-图像毛玻璃模糊效果


    毛玻璃其实就是磨砂玻璃,图像经过毛玻璃模糊效果后能够模糊的看清背后的风景,让人感觉有种朦胧美,让界面看上去很有层次感。
    我们知道了图像马赛克效果是通过设置一个指定大小的像素块并将其中的所有像素点设置成统一值实现的。与图像的马赛克效果类似,图像的毛玻璃模糊效果也是通过修改像素点的颜色值来实现的,只不过是通过像素点随机替换来修改像素点的颜色值

    如上图所示,左边为原图像的某5个像素点,我们假设随机替换值为5,即随机替换的范围为0-4。那么对于原图像上的某个像素点(x,y)的颜色值,我们将用原图像上的另一个像素点(x+随机值,y+随机值)的颜色值进行替换,即(x,y)=(x+随机值,y+随机值)。经过一系列像素点变换后,就得到了类似右边的图像,从而实现图像的毛玻璃模糊效果。

    首先按照惯例使用imread()函数读取原图像的图像数据,并通过shape属性获取出图像的宽高信息。接着新建一个图像空模板,大小和形状与原图像保持一致。同时设置随机替换值,这里我们设置为5。然后开始遍历像素点,利用我们设置的随机替换值使用random模块的random.randint函数产生一个随机整数值,对像素点进行随机替换。 

    import cv2
    import numpy as np
    import random
    
    img = cv2.imread("2013.jpg",1)  #读取一张图片,彩色
    cha=img.shape
    height,width,deep=cha
    cv2.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 cv2
    import numpy as np
    import random
    
    img = cv2.imread("2013.jpg",1)  #读取一张图片,彩色
    cha=img.shape
    height,width,deep=cha
    cv2.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()

    效果图:

      

  • 相关阅读:
    转ANYTAO的学习方法
    第一次写文章
    分享一个有趣的学习方法,欢迎一起探讨如何提高学习兴趣
    SQL基础
    insert into 后获得自动插入的id(select @@identity)
    如何向ASP.NET Web 服务器控件添加客户端脚本事件
    关键字using的主要用途
    网页设计师必备的10个CSS技巧
    DataSet与DataReader的区别
    由于系统时间修改导致Oracle启动失败
  • 原文地址:https://www.cnblogs.com/liming19680104/p/12222670.html
Copyright © 2020-2023  润新知