如何从python中的图像中计算花朵(黄色)的数量

如何从python中的图像中计算花朵(黄色)的数量,python,opencv,Python,Opencv,我是python的新手。我试着提取花朵(可能不太准确),但我需要:(1)。能够计算提取了多少特征。(2) 图像中显示为淡黄色但不是我想要的对象的其他对象。谢谢你的帮助 下面是我目前的代码 import numpy as np import cv2 from matplotlib import pyplot as plt img = cv2.imread("female29.jpg") image = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

我是python的新手。我试着提取花朵(可能不太准确),但我需要:(1)。能够计算提取了多少特征。(2) 图像中显示为淡黄色但不是我想要的对象的其他对象。谢谢你的帮助

下面是我目前的代码

import numpy as np
import cv2
from matplotlib import pyplot as plt

img = cv2.imread("female29.jpg")
image = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
image2 = cv2.cvtColor(image, cv2.COLOR_RGB2HSV)

yellow = (204, 204, 0)
light_yellow = (255, 255, 204)

mask = cv2.inRange(image, yellow, light_yellow)
result = cv2.bitwise_and(image, image, mask=mask)
cv2.imshow("image", result)
cv2.waitKey(0)

遗憾的是,仅仅使用opencv并没有简单的方法来计算出现的花的数量,因为上面的代码所做的只是高亮显示或将遮罩应用到图像中像素值在您提供的范围内的部分

yellow = (204, 204, 0)
light_yellow = (255, 255, 204)
您可以尝试更改范围的不同值,以更准确地遮罩花朵 可能会使用联机调整值(请记住,必须将值从0-100缩放到0-255)


您只能尝试调整这些值,以防止图像中的其他对象显示为淡黄色,但在一天结束时,您只需应用颜色过滤器,因此,所有黄色的东西都会显示出来,除非你使用更高级的方法(如机器学习)来识别花朵,否则没有办法阻止这种情况发生

你需要附上你的图像,以使代码重现。