结果

Python实现在线批量美颜功能过程解析

然后直接放源码:

import cv2 as cv

source = cv.imread("zhaopian.jpg")
dst = cv.bilateralFilter(src=source, d=0, sigmaColor=30, sigmaSpace=15)

cv.imshow("source", source)
cv.imshow("dst", dst)

cv.waitKey()
cv.destroyAllWindows()

好了,本文结果部分介绍结束,想进一步了解一下原理的同学可以接着往下看了,没啥兴趣的可以左上角了。

双边滤波原理

上面的图片美颜效果其实使用的是 OpenCV 中为我们提供的双边滤波器,是一种图片降噪算法。

双边滤波(Bilateral filter)是一种非线性的滤波方法,本质是基于高斯滤波。

前面的文章介绍过,高斯滤波的方式会造成边缘模糊化,这是没办法的事情,这是高斯滤波过滤方式而导致的。

而双边滤波就是在高斯滤波的基础上,对高斯滤波的方式加以改进,结合图像的空间邻近度和像素值相似度的一种折处理,同时考虑 空域信息(domain) 和 值域信息(range) ,达到保边降噪的目的。

说人话就是双边滤波在进行滤波的过程中,不光要考虑周围像素值与中点像素值的大小之差,还需要考虑空间上的距离,进而确定该点对中间点的影响因子。

比如在一张图像中,相邻的像素点的颜色会非常相近,但是如果在边缘区域,相邻元素点的颜色变化会非常的大。

高斯过滤器的过滤过程中就是因为没有考虑边缘区域而导致过滤后图像边缘模糊,而双边滤波由于在过滤的过程中考虑到了周围像素值与中点像素值的差值大小,从而会确定一个影响因子,从而实现图片的保边降噪。

具体的实现原理如下:

希望你们的高中数学没有都还给你们的数学老师

整个双边滤波的算法分为两部分,一个是颜色值的相似度(值域核),公式如下:

$$
r(i, j, k, l) = exp( - \frac{||f(i, j) "text-align: center">Python实现在线批量美颜功能过程解析

从这个图中可以看出,在图(b)空域核上,每个像素的权重是符合高斯分布的,而在图(c)的值域核上,由于像素取值相差过大,不同颜色的权重系数相差也很大,双边过滤过滤完成后,边缘两侧的像素点保留了原有的色彩值。

接下来还是看下双边滤波的原函数:

def bilateralFilter(src, d, sigmaColor, sigmaSpace, dst=None, borderType=None)

  • src:原图
  • d:像素邻域的直径。如果这个值设为非正数,那么 OpenCV 会从第五个参数 sigmaSpace 来将它计算出来。
  • sigmaColor:颜色空间滤波器的 $\sigma$ 值。这个参数的值越大,就表明该像素邻域内有更宽广的颜色会被混合到一起,产生较大的半相等颜色区域。
  • sigmaSpace:坐标空间中滤波器的 $\sigma$ 值,坐标空间的标注方差。他的数值越大,意味着越远的像素会相互影响,从而使更大的区域足够相似的颜色获取相同的颜色。当 d > 0 , d 指定了邻域大小且与 sigmaSpace 无关。否则, d 正比于 sigmaSpace 。使用过程中我发现这个值越大,图像的过渡效果越好。

源代码我就不放了,实际上只有那一行代码,不过希望看到本文的各位除了知道双边滤波能对图像进行美颜以外还是能稍微了解下原理。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!

《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线

暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。

艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。

《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。