OpenCV 中如何使用 matchTemplate 函数?

推荐答案

-- -------------------- ---- -------
------ ---
------ ----- -- --

- -------
--- - ----------------------- --
-------- - -------------------------- --

- -------
-- - - --------------------

- -- ------------- --------
--- - ---------------------- --------- ---------------------

- ------
--------- - ---

- --------------
--- - ------------ -- ----------

- ---------------
--- -- -- ----------------
    ------------------ --- ------ - -- ----- - --- --- ---- --- --

- ----
--------------------- ----
--------------
-----------------------

本题详细解读

1. matchTemplate 函数的作用

matchTemplate 是 OpenCV 中用于模板匹配的函数。它通过滑动模板图像在输入图像上进行比较,计算每个位置的相似度,并返回一个结果矩阵。这个结果矩阵中的每个值表示输入图像中对应位置与模板的匹配程度。

2. 参数解析

  • img: 输入图像,通常是灰度图像。
  • template: 模板图像,通常是灰度图像。
  • method: 匹配方法,常用的有 cv2.TM_CCOEFF_NORMEDcv2.TM_SQDIFF 等。

3. 匹配方法

  • cv2.TM_CCOEFF_NORMED: 归一化相关系数匹配法,值越大表示匹配程度越高。
  • cv2.TM_SQDIFF: 平方差匹配法,值越小表示匹配程度越高。

4. 结果处理

  • res: 匹配结果矩阵,每个值表示输入图像中对应位置与模板的匹配程度。
  • threshold: 设定一个阈值,筛选出匹配程度高于该阈值的位置。
  • loc: 使用 np.where 函数找到匹配结果中大于阈值的位置。

5. 绘制匹配区域

  • 使用 cv2.rectangle 函数在输入图像上绘制矩形框,标记出匹配区域。

6. 显示结果

  • 使用 cv2.imshow 显示匹配结果,并通过 cv2.waitKeycv2.destroyAllWindows 控制窗口显示和关闭。
纠错
反馈