首页 > 解决方案 > 如何从面部opencv中去除眩光

问题描述

我正在尝试使用 opencv 对图像进行分色。这是输入在此处输入图像描述

我添加了我在此处找到的以下脚本以获得分色效果:

import numpy as np
import cv2

im = cv2.imread('messi5.jpg')

n = 2    # Number of levels of quantization

indices = np.arange(0,256)   # List of all colors 

divider = np.linspace(0,255,n+1)[1] # we get a divider

quantiz = np.int0(np.linspace(0,255,n)) # we get quantization colors

color_levels = np.clip(np.int0(indices/divider),0,n-1) # color levels 0,1,2..

palette = quantiz[color_levels] # Creating the palette

im2 = palette[im]  # Applying palette on image

im2 = cv2.convertScaleAbs(im2) # Converting image back to uint8

cv2.imshow('im2',im2)
cv2.waitKey(0)
cv2.destroyAllWindows()

这是我通过设置得到的输出n=5接近我想要的输出

在此处输入图像描述

然而,原始图像上的眩光正在影响最终输出(我需要一个面部颜色几乎相同的输出)。如何从原始输入中消除刺眼

标签: python-3.xopencv

解决方案


推荐阅读