我需要一种用任何语言编写的算法来在图像中找到图像,包括不同比例的图像。有谁知道解决此类问题的起点?
例如:
我有一个 800x600 的图像,在该图像中是一个周长为 180 像素的黄色球。我需要能够使用周长为 15 像素的黄色球的搜索模式找到此图像。
谢谢
最佳答案
这是一个算法:
这是运行中的算法:
RGB 和 R:
G和B:
倒 B 和图案:
Python + OpenCV 代码:
import cv
if __name__ == '__main__':
image = cv.LoadImage('ball-b-inv.png')
template = cv.LoadImage('ball-pattern-inv.png')
image_size = cv.GetSize(image)
template_size = cv.GetSize(template)
result_size = [ s[0] - s[1] + 1 for s in zip(image_size, template_size) ]
result = cv.CreateImage(result_size, cv.IPL_DEPTH_32F, 1)
cv.MatchTemplate(image, template, result, cv.CV_TM_CCORR)
min_val, max_val, min_loc, max_loc = cv.MinMaxLoc(result)
print max_loc
结果:
misha@misha-desktop:~/Desktop$ python cross-correlation.py
(72, 28)
这为您提供了图像中图案第一次出现的左上角坐标。如果要找到圆的中心,请将圆的半径添加到 x 和 y 坐标。
关于image-processing - 图像算法中的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4720168/