我需要一种用任何语言编写的算法来查找图像内部的图像,包括不同比例的图像.有谁知道解决这样的问题的起点?
例如:
我有800x600的图像,并且该图像是一个周长为180像素的黄色球.我需要能够找到具有15像素周长的黄色球的搜索模式的图像.
谢谢
mpe*_*kov 21
这是一个算法:
这是运行中的算法:
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
Run Code Online (Sandbox Code Playgroud)
结果:
misha@misha-desktop:~/Desktop$ python cross-correlation.py
(72, 28)
Run Code Online (Sandbox Code Playgroud)
这将为您提供图像中图案第一次出现的左上角坐标.如果要查找圆的中心,请将圆的半径添加到x和y坐标.