ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

7.3 数字图像处理——击中击不中变换及Python实现

2021-03-28 20:05:48  阅读:294  来源: 互联网

标签:原图 匹配 img Python 数字图像处理 7.3 np cv


简介

该方法用于精确匹配目标。

效果

每张图为正方形,这里画在一起了。原图为最左面部分,模板为匹配原图右下角那个正方形(这里没画出)。
从左到右依次为:原图、正向匹配、原图黑白颠倒、方向匹配、最终结果(有个白色像素点,即为原图右下角的正方形的中心)
drawing

实现

import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt

img = cv.imread('pic/rectangle_find35.png', -1) # 原图,把 imread 第一个参数换成你实际的图片路径
K = np.zeros((37,37), np.uint8)
K[1:36, 1:36] = 1 # K 为要匹配的模板,应在外圈加圈目标的反色。

hm1 = cv.morphologyEx(img, cv.MORPH_HITMISS, K) 
hm2 = cv.morphologyEx(255-img, cv.MORPH_HITMISS, 1-K)

hm = cv.bitwise_and(hm1, hm2) 

yx = np.where(hm == 255) # 匹配成功的点坐标
print('Matched in', (yx[0][0],yx[1][0]))

plt.imshow(np.hstack([img, hm1, hm2, hm]))
plt.show()

感觉OpenCV的HITMISS没有封装好,不能直接得到想要的结果,这里就分成了好几步。


说明:

  1. 未经许可,谢绝转载。
  2. 本教程为《数字图像处理Python OpenCV实战》的配套代码相关内容。
    免费视频教程为0-6章(标题号≤6),可在此处点击观看。
    所有课件及源代码可在此处下载:
    链接:https://pan.baidu.com/s/198PySe_vebO3e06idHSQ6g
    提取码:11o4
    有问题可在QQ群(1079300899)指出,进群答案:数字图像处理。在本文评论指出可能导致回复很晚。

标签:原图,匹配,img,Python,数字图像处理,7.3,np,cv
来源: https://www.cnblogs.com/forcekeng/p/14589640.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有