图片卡通化1
第1步:减少图像色彩
因为双边滤波器平滑平坦区域同时能保持边缘清晰,所以很适合于将RGB图像转换为卡通。虽然速度好像慢一些一个技巧是重复(例如,通过num_bilateral = 7七次)应用小双边滤波器,而不是只用一次大双边滤波器。
import cv2
num_down = 2 # 缩减像素采样的数目
num_bilateral = 7 # 定义双边滤波的数目
img_rgb = cv2.imread("img_example.jpg")
用高斯金字塔降低取样
img_color = img_rgb
for _ in xrange(num_down):
img_color = cv2.pyrDown(img_color)
重复使用小的双边滤波代替一个大的滤波
for _ in xrange(num_bilateral):
img_color = cv2.bilateralFilter(img_color, d=9,
sigmaColor=9,
sigmaSpace=7)
升采样图片到原始大小
for _ in xrange(num_down):
img_color = cv2.pyrUp(img_color)
cv2.bilateralFilter中的三个参数控制像素邻域的直径(d)和颜色空间中的滤波器的标准偏差(sigmaColor)以及坐标空间(sigmaSpace)。