OpenCV-Python亚像素级角点

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

在这里插入图片描述
亚像素检测:

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()

结果:
在这里插入图片描述坐标点:
在这里插入图片描述

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值