gpt4 book ai didi

python - 如何通过直方图从蒙版图像中提取颜色特征?

转载 作者:太空宇宙 更新时间:2023-11-03 22:07:15 25 4
gpt4 key购买 nike

我从图像中提取了一个对象,所以现在我有 a masked image with a tennis ball and a black background .

我想通过直方图单独从网球中提取颜色特征。这是我到目前为止的代码,但是从直方图的外观来看,黑色背景支配着任何其他颜色,这使得直方图无效:

from PIL import Image
from pylab import *

# Import image and convert to gray
image = Image.open("res_300.png")
im = image.convert('L')
im_array = array(im)

# Create a new figure
figure()
gray()

# Show contours with origin upper left corner
contour(im, origin='image')
axis('equal')
axis('off')

# Create histogram
figure()
hist(im_array.flatten(), 128)
show()

有没有办法在忽略黑色背景的情况下根据网球 BGR 颜色特征绘制直方图?

我是一个python菜鸟。谢谢。

最佳答案

要将颜色 channel 拆分为BGR,我们可以使用cv2.split() 然后使用cv2.calcHist()用直方图提取颜色特征。要删除占主导地位的黑色背景,我们可以将范围设置为 [1, 256]

enter image description here

from matplotlib import pyplot as plt
import cv2

image = cv2.imread('1.png')

channels = cv2.split(image)
colors = ("b", "g", "r")

plt.figure()
plt.title("Color Histogram")
plt.xlabel("Bins")
plt.ylabel("# of Pixels")
features = []

# Loop over the image channels (B, G, R)
for (channel, color) in zip(channels, colors):

# Calculate histogram
hist = cv2.calcHist([channel], [0], None, [255], [1, 256])
features.extend(hist)

# Plot histogram
plt.plot(hist, color = color)
plt.xlim([0, 256])

plt.show()

关于python - 如何通过直方图从蒙版图像中提取颜色特征?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57385640/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com