OpenCV-Python亚像素级角点

最近在学习亚像素级角点检测,发现一个问题,就是我用Shi-Tomasi角点检测得到的值在未进行类型转换时,就已经是亚像素级了。有点奇怪,不知道是不是OpenCV版本问题。最后就是标记的红色圆圈好像已经覆盖了亚像素级范围了,应该减小。

OpenCV-Python亚像素级角点_第1张图片
亚像素检测:

import cv2 as cv
import numpy as np

if __name__=='__main__':
    img=cv.imread("D:/testimage/ma.jpg")
    gray_img=cv.cvtColor(img,cv.COLOR_BGR2GRAY)
    result_img=img.copy()
    #Shi-Tomasi角点检测
    corners=cv.goodFeaturesToTrack(gray_img,100,0.01,10,blockSize=3,useHarrisDetector=False,k=0.04)
    #迭代算法模板(1.类型 2.迭代次数 3.阈值)
    criteria=(cv.TermCriteria_EPS+cv.TermCriteria_MAX_ITER,30,0.01)
    #亚像素角点检测
    corners2=cv.cornerSubPix(gray_img,corners,(5,5),(-1,-1),criteria)
    j=0
    for i in corners2:
        x,y=i.ravel()
        j=j+1
        cv.circle(result_img,(x,y),2,(0,0,255),2)
        print("角点坐标"+str(j)+":",(x,y))
    cv.imshow("original image", img)
    cv.imshow("result image",result_img)
    #cv.imwrite("D:/testimage/result ma.jpg",result_img)
    cv.waitKey(0)
    cv.destroyAllWindows()

结果:
OpenCV-Python亚像素级角点_第2张图片坐标点:
OpenCV-Python亚像素级角点_第3张图片

你可能感兴趣的:(OpenCV基础教程,opencv,计算机视觉,cv,深度学习,人脸识别)