如何在这里找到图像中所有皮肤像素的中位数(R,G,B)像素值?

问题描述 投票:0回答:1

如何在这里得到图像中所有皮肤像素的中位数像素值(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)

但这似乎没有给出正确的答案。请大家帮忙!

python cv2
1个回答
0
投票

这是我发现的。(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)

如果这是你要找的东西,请告诉我。希望能帮到你

© www.soinside.com 2019 - 2024. All rights reserved.