如何在这里得到图像中所有皮肤像素的中位数像素值(RGB中位数)?https:/i.imgur.comqU1wW6s.jpg
我尝试了以下方法。
if __name__ == '__main__':
image = cv2.imread('skin.png')
COLOR1 = [0,0,0]
COLOR2 = [10,10,10]
image_copy = image.copy()
black_pixels_mask = np.all(image <= COLOR2, axis=-1)
non_black_pixels_mask = ~black_pixels_mask
image_array = image_copy[non_black_pixels_mask]
med = np.median(image_array, axis=0)
print(med)
但这似乎没有给出正确的答案。请大家帮忙!
这是我发现的。(185.0, 155.0, 135.0)
这是我的代码。请注意 split
返回颜色序列 b,g,r
.
import cv2
import numpy as np
image = cv2.imread('skin.jpg')
def getMedianImageChannels(im):
b, g, r = cv2.split(im) # Split channels
# Remove zeros
b = b[b != 0]
g = g[g != 0]
r = r[r != 0]
# median values
b_median = np.median(b)
r_median = np.median(r)
g_median = np.median(g)
return r_median,g_median,b_median
median = getMedianImageChannels(image)
print(median)
如果这是你要找的东西,请告诉我。希望能帮到你