如何找到图像中所有皮肤像素的中值 (R,G,B) 像素值?
How to find the median (R,G,B) pixel value of all skin pixels in an image?
这里如何获取图像中所有皮肤像素的中值像素值(median RGB)?
https://i.imgur.com/qU1wW6s.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
returns 颜色序列 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)
如果这就是您要找的,请告诉我。希望对您有所帮助!
这里如何获取图像中所有皮肤像素的中值像素值(median RGB)? https://i.imgur.com/qU1wW6s.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
returns 颜色序列 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)
如果这就是您要找的,请告诉我。希望对您有所帮助!