Jas*_*Law 5 python opencv numpy computer-vision template-matching
我在 opencv 和模板匹配方面遇到了一些麻烦,所以我希望这里有人可以帮助迷失的灵魂。
因此,作为我正在使用的代码的一部分,我有以下两行我不太理解。
result = cv2.matchTemplate(edged, template, cv2.TM_CCOEFF)
(_, maxVal, _, maxLoc) = cv2.minMaxLoc(result)
Run Code Online (Sandbox Code Playgroud)
根据我的理解,第一行在变量“result”中存储了一个相关系数。这反过来又被传递到cv2.minMaxLoc(...)它依次生成一个由 (minVal, maxVal, minLoc, maxLoc) 组成的 4 元素数组,其中我们只对 maxVal 和 maxLoc 感兴趣。
在打印 maxVal 的值时,我似乎得到了 2,000,000 到 7,000,000 之间的值,具体取决于模板、光照条件等。
我的问题如下:
maxVal 是什么意思?
maxVal 的范围是多少?
哪些物理特性会影响 maxVal 的值?
在此先感谢您的帮助和指导!
理想情况下,cv2.matchTemplate返回一个相关图,本质上是一个灰度图像,其中每个像素表示该像素的邻域与模板的匹配程度。
您建议我们只对maxLoc和感兴趣maxVal,但事实并非如此,它取决于您在匹配模板时考虑的相关类型。
现在,对于您的问题,该函数返回 a或 anminMaxLoc中的最大和最小强度值以及这些强度的位置。Matarray
MaxLoc表示返回的图像中的最高强度matchTemplate,对应于图像中与模板的最佳匹配(仅对于特定的相关方法,对于TM_SQDIFF或TM_SQDIFF_NORMED ,最佳匹配将是minVal)。
由于返回的图像matchTemplate是灰度图像,因此范围应取决于原始图像,因此 2000000 到 7000000 对我来说似乎有点不正常。
唯一影响的“物理特征”maxVal应该是模板与图像的相关程度,除此之外别无其他。
希望能帮助到你!
| 归档时间: |
|
| 查看次数: |
11205 次 |
| 最近记录: |