实现磨皮的关键API是双边滤波
cv2.bilateralFilter(img,d,a,b) #双边滤波
Opencv官方文档对它功能的简述是:“可以很好地减少不必要的噪声,同时保持边缘相当锐利”
参数:
img 输入一张图像
d 每个像素邻域的直径
a 高斯函数标准差
b 灰度值函数标准差
后面的三个值可以根据照片需要的美化程度来调节
一般推荐50,50,50
代码如下:
import cv2
没有按装OpenCV的,可以看一下另一篇博客如何在Pycharm中利用镜像地址安装OpenCV
代码如下(示例):
img = cv2.imread('图片路径')
det = cv2.bilateralFilter(img, 50, 50, 50)
import cv2
#创建窗口
cv2.namedWindow('src', cv2.WINDOW_NORMAL)
cv2.namedWindow('det', cv2.WINDOW_NORMAL)
# 读入图片
img = cv2.imread('D:/shijue/111.jpg')
cv2.imshow('src', img)
# 双边滤波
det = cv2.bilateralFilter(img, 50, 50, 50)
cv2.imshow('det', det)
cv2.waitKey(0)
每到OpenCV的展示案例就知道Lena要登场了(ps:总感觉Lena约等于衬衫的价格是9榜15便士)
这只叫阿呆的小猫的效果更要明显一点