python3.6+ openCV3.4环境下的边缘保留滤波对图像进行美化

本文介绍了使用Python3.6和OpenCV3.4的bilateralFilter函数对图像进行美化的方法,特别是在人脸美化上的应用。该滤波器能保留色差较大的边缘像素,如眼线、鼻梁和嘴唇,通过调整参数实现不同程度的美化。参数设置不合理可能导致图像模糊,推荐参数范围为50-60。
摘要由CSDN通过智能技术生成

其实效果和美颜相机差不太多,调用了openCV的bilateralFilter函数,一般用bilateralFilter来美化人脸比较好。原理就是用双边滤波对色差较大的边缘像素进行保留。如人的眼线,鼻梁,嘴唇等。优化的效果主要依赖自己调整bilateralFilter的第三个参数,越大的话效果越明显。不废话,贴代码。

import cv2 as cv
import numpy as np


def bi_demo(image):#边缘保留滤波
    dst=cv.bilateralFilter(image,0,40,15)
    cv.imshow("bi_demo",dst)


def shift_demo(image):#均值迁移
    dst=cv.pyrMeanShiftFiltering(image,10,50)
    cv.imshow("bi_demo",dst)


src1 = cv.imread('D:/555.jpg', cv.IMREAD_COLOR)  # 读入彩色图片
#res=cv.resize(src1,(480,640),interpolation=cv.INTER_CUBIC)#第二个参数用来设置输出图像的长宽
print(src1.shape)
#cv.imwrite('D:/tupian/zelong3.jpg',res)
cv.namedWindow("input image",1)
cv.imshow('image1', src1)
bi_demo(src1)
k = cv.waitKey(0)

效果图

比较清楚的看到脸部的雀斑几乎消除,第二个参数越大消除的也就越多,美化效果也更好,太大的数值会导致图像过于模糊,建议50-60比较好,上图是40的参数。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值