gpt4 book ai didi

python - 如何识别与查询图像模板匹配的图像中不同颜色的对象?

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

import numpy as np
import cv2
import os

dir = 'C:\\Project\\Interview Packet'
os.chdir(dir)

image = cv2.imread('us_flag_color.png')
template = cv2.imread('mask.png')

imageGray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
templateGray = cv2.cvtColor(template, cv2.COLOR_BGR2GRAY)

template = cv2.Canny(template, 50, 200)

result = cv2.matchTemplate(imageGray, templateGray, cv2.TM_SQDIFF)
min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(result)

w, h = template.shape[:2]
threshold = 0.8*max_val
loc = np.where( result >= threshold)
for pt in zip(*loc[::-1]):
cv2.rectangle(image, pt, (pt[0] + w, pt[1] + h), (0,0,255), 2)

cv2.imwrite("res.png", image)

我有一面上面有星星的美国国旗和一个由黑色星星组成的蒙版图像。我想使用蒙版图像检测美国国旗中的所有星星,尽管颜色不同。当我使用上面的代码时,我只能识别出标记为白色的星星,如下图所示。

enter image description here

红色方框下方有一颗星星,颜色为黑色,与蒙版图像中的星相匹配。我猜这是因为我使用灰色图像来识别这些星星。如下图,彩色星星在变灰过程中逐渐变淡,算法无法将它们与背景颜色区分开来。

enter image description here

原图贴在下面:

  • 掩码:enter image description here
  • 美国国旗:enter image description here

最佳答案

通常,我使用HSV 颜色空间中的颜色信息处理图像。我分析了 RGBHSV 的不同 channel ,发现 V channel 最适合这个问题。

BGR:

enter image description here

HSV:

enter image description here

然后做模板匹配,我明白了:

enter image description here


我想也许使用 findContours 也能完成这项工作。

关于python - 如何识别与查询图像模板匹配的图像中不同颜色的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47759764/

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