本文實(shí)現(xiàn)兩種美白效果:
- 修改后的亮度增強(qiáng)法
- 雙邊濾波法
import cv2
import numpy as np
img = cv2.imread('2.jpg', 1)
cv2.imshow('src', img)
imgInfo = img.shape
height = imgInfo[0]
width = imgInfo[1]
# 1) 修改亮度增強(qiáng)實(shí)現(xiàn)磨皮美白
dst = np.zeros((height, width, 3), np.uint8)
for i in range(0, height):
for j in range(0, width):
(b, g, r) = img[i, j]
# 兩個通道比例放大
bb = int(b) * 1.3 + 10
gg = int(g) * 1.2 + 15
# 閾值判斷
if bb > 255:
bb = 255
if gg > 255:
gg = 255
# 像素封裝
dst[i, j] = (bb, gg, r)
# 2) 雙邊濾波實(shí)現(xiàn)的磨皮美白:濾出噪聲 + 保存細(xì)節(jié)
# 參數(shù):圖片 d sigmaColor sigmaSpace
# 參數(shù)解釋:
# d: 過濾時使用的各像素鄰域的直徑
# sigmaColor: 色彩空間的sigma, 較大時各像素鄰域內(nèi)相距較遠(yuǎn)的顏色會被混到一起,形成更大范圍內(nèi)的半相等顏色
# sigmaSpace: 坐標(biāo)空間的sigma, 較大時只要顏色相近,較遠(yuǎn)的像素會相互影響
dst = cv2.bilateralFilter(img, 15, 35, 35)
cv2.imshow('dst proportianally larger', dst)
cv2.imshow('dst2 bilateralFilter', dst)
cv2.waitKey(0)
兩種美白效果如下:
image.png