我有一个咖啡罐的图像,橙色的盖子位置,我想找到.就这个
.
gcolor2实用程序显示盖子中心的HSV为(22,59,100).问题是如何选择颜色的限制呢?我尝试了min =(18,40,90)和max =(27,255,255),但是出乎意料
这是Python代码:
import cv
in_image = 'kaffee.png'
out_image = 'kaffee_out.png'
out_image_thr = 'kaffee_thr.png'
ORANGE_MIN = cv.Scalar(18, 40, 90)
ORANGE_MAX = cv.Scalar(27, 255, 255)
COLOR_MIN = ORANGE_MIN
COLOR_MAX = ORANGE_MAX
def test1():
frame = cv.LoadImage(in_image)
frameHSV = cv.CreateImage(cv.GetSize(frame), 8, 3)
cv.CvtColor(frame, frameHSV, cv.CV_RGB2HSV)
frame_threshed = cv.CreateImage(cv.GetSize(frameHSV), 8, 1)
cv.InRangeS(frameHSV, COLOR_MIN, COLOR_MAX, frame_threshed)
cv.SaveImage(out_image_thr, frame_threshed)
if __name__ == '__main__':
test1()
Run Code Online (Sandbox Code Playgroud) 我目前正在研究一个包括颜色检测的项目。我在 python 上使用 opencv 来做到这一点,我可以检测到我想要的颜色,即蓝色,但我无法让软件知道这种颜色已被检测到。这是我的代码。
` hsv_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV) 边界 = [([94, 90, 45], [145, 255, 255])]
# loop over the boundaries
for (lower, upper) in boundaries:
# create NumPy arrays from the boundaries
lower = np.array(lower, dtype="uint8")
upper = np.array(upper, dtype="uint8")
# find the colors within the specified boundaries and apply
# the mask
mask = cv2.inRange(hsv_frame, lower, upper)
output = cv2.bitwise_and(frame, frame, mask=mask)
imageOut = np.hstack([frame, output])`
Run Code Online (Sandbox Code Playgroud)
它正确地隔离了蓝色,就像 我的代码的输出一样。
我的问题是,从那里我不知道如何让我的软件知道蓝色已被检测到并隔离。