• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

关于python:python图像处理磨皮

python 搞代码 3年前 (2022-02-20) 13次浏览 已收录 0个评论

本篇是利用python来对图像进行磨皮祛斑,对人脸进行“美图”,首先来上效果图,第一张是原图,第二张是磨皮后的图(图源自互联网),能够看出成果挺好而且很天然不会很失真

整个过程和根本代码如下:
先用双边滤波进行降噪,双边滤波是一种非线性滤波,可能达到去噪保边的成果。相比高斯滤波,还思考了灰度相似性,所以双边滤波是联合图像的空间邻近度和像素值类似度的一种折衷解决。

temp1 = cv2.bilateralFilter(img, 75, 255, 5)


而后将降噪后的图像减去原图像,提取须要解决的局部,能够可能到脸部有许多红色的斑点。
temp2 = cv2.subtract(temp1, img)


再对提取来的局部进行高斯降噪解决

temp3 = cv2.GaussianBlur(temp2, (5,5), 0)

能够看到脸上那些点被打消了,脸布变得平滑了

       temp4 = cv2.add(img, temp3)

而后再将降噪解决的局部和原图相加,取得最终磨皮后的图

所有代码:

    import cv2
    img = cv2.imread("pic")
    
    temp4 = np.zeros_like(img)
    temp1 = cv2.bilateralFilter(img, 75, 255, 5)
    cv2.imshow("temp1 ", temp1)
    temp2 = cv2.subtract(temp1, img)
    cv2.imshow("temp2 ", temp2)
    temp2 = cv2.add(temp2, (10, 10, 10, 128))
    # cv2.imshow("temp 2_2", temp2)
    # temp3 = cv2.GaussianBlur(temp2, (2 * v2 - 1, 2 * v2 - 1), 0)
    temp3 = cv2.GaussianBlur(temp2, (5,5), 0)
    cv2.imshow("temp 3", temp3)
    temp4 = cv2.add(img, temp3)
    cv2.imshow("temp 4", temp4)
    dst = cv2.addWeighted(dst, p, temp4, 1 - p, 0.0)
    dst = cv2.add(dst, (10, 10, 10, 255))
    cv2.imshow("results ", dst)

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:关于python:python图像处理磨皮
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址