zoukankan      html  css  js  c++  java
  • python图片匹配方法

    python图片匹配方法

    装opencv

    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-python

    然后先写个显示图片

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    import cv2
    #读取图像,支持 bmp、jpg、png、tiff 等常用格式
    image = cv2.imread("i:\111.png")
    #创建窗口并显示图像
    cv2.imshow("11",image)
    cv2.waitKey(0)
    #释放窗口
    cv2.destroyAllWindows()
    import cv2 as cv
    import numpy as np
    
    target = cv.imread("i:\111.png")
    tpl = cv.imread("i:\111x.png")
    methods = [cv.TM_SQDIFF_NORMED, cv.TM_CCORR_NORMED, cv.TM_CCOEFF_NORMED]
    th, tw = tpl.shape[:2]
    for md in methods:
            result = cv.matchTemplate(target, tpl, md)
            min_val, max_val, min_loc, max_loc = cv.minMaxLoc(result)
            if md == cv.TM_SQDIFF_NORMED:
                tl = min_loc
            else:
                tl = max_loc
            br = (tl[0] + tw, tl[1] + th)
            print("左上角坐标")
            print(tl);
            print("右下角坐标")
            print(br);
            cv.rectangle(target, tl, br, [0, 0, 0])
            cv.imshow("pipei"+np.str(md), target)
            # break;
    cv.waitKey(0)
    cv.destroyAllWindows()

    这里用了3个方法遍历匹配 

     有缩进的时候 注意复制的时候 几块几块来复制

    因为template match都能匹配到 不管有没有 

    所以 要template match要判断有没有找到匹配的东西按照获取到的坐标在不在那个位置。。 用 TM_SQDIFF_NORMED比较精确

  • 相关阅读:
    20
    19下
    19上
    18下
    20145218 《Java程序设计》第五周学习总结
    20145218 《Java程序设计》第四周学习总结
    20145218 《Java程序设计》第三周学习总结
    20145218 《Java程序设计》第二周学习总结
    20145218《Java程序设计》第一周学习总结
    问卷调查
  • 原文地址:https://www.cnblogs.com/newmiracle/p/12434282.html
Copyright © 2011-2022 走看看