OpenCV特征提取與檢測之Shi-Tomasi角點檢測器
前言
角點通常被定義為兩條邊的交點,或者說,角點的局部鄰域應(yīng)該具有兩個不同區(qū)域的不同方向的邊界。角點檢測(Corner Detection)是計算機視覺系統(tǒng)中獲取圖像特征的一種方法,廣泛應(yīng)用于運動檢測、圖像匹配、視頻跟蹤、三維重建和目標(biāo)識別等,也可稱為特征點檢測。
角點檢測算法的基本思想:
使用一個固定窗口在圖像上進行任意方向上的滑動,比較滑動前與滑動后兩種情況,窗口中的像素灰度變化程度,如果存在任意方向上的滑動,都有著較大灰度變化,那么我們可以認為該窗口中存在角點。
目前,角點檢測算法還不是十分完善,許多算法需要依賴大量的訓(xùn)練集和冗余數(shù)據(jù)來防止和減少錯誤的特征的出現(xiàn)。對于角點檢測算法的重要評價標(biāo)準(zhǔn)是:其對多幅圖像中相同或者相似特征的檢測能力,并且能夠應(yīng)對光照變化、或者圖像旋轉(zhuǎn)等影響。
關(guān)于角點的具體描述可以有幾種:
- 一階導(dǎo)數(shù)(即灰度的梯度)的局部最大所對應(yīng)的像素點;
- 兩條及兩條以上邊緣的交點;
- 圖像中梯度值和梯度方向的變化速率都很高的點;
- 角點處的一階導(dǎo)數(shù)最大,二階導(dǎo)數(shù)為零,指示物體邊緣變化不連續(xù)的方向
上一篇博客介紹了Harris角點檢測器,這篇博客將介紹另一個角點檢測器:Shi-Tomasi角點檢測器。
Shi-Tomasi角點檢測器是Harris角點檢測器的優(yōu)化,效果更好;
cv2.goodFeaturesToTrack(),通過Shi-Tomasi方法(或者Harris角點檢測)在圖像中找到N個最強的角點。并且在跟蹤對象方面性能很好。
1. 效果圖
原圖 VS Harris角點檢測器效果如下:
原圖 VS Shi-Tomasi角點檢測效果圖如下:
可以看出Shi-Tomasi確實效果要好一些,所有角點均被成功檢測;
2. 源碼
# Shi-Tomasi角點檢測是Harris角點檢測的優(yōu)化,更準(zhǔn)確,會檢測出N個最強角點; import cv2 import numpy as np from matplotlib import pyplot as plt img = cv2.imread('images/polygon.jpg') plt.subplot(1, 2, 1) plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB)) plt.xticks([]) plt.yticks([]) plt.title("origin") gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) corners = cv2.goodFeaturesToTrack(gray, 25, 0.01, 10) corners = np.int0(corners) for i in corners: x, y = i.ravel() cv2.circle(img, (x, y), 3, 255, -1) plt.subplot(1,2,2) plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB)) plt.xticks([]) plt.yticks([]) plt.title("Shi-Tomasi res") plt.show()
參考 https://docs.opencv.org/3.0-beta/doc/py_tutorials/py_feature2d/py_shi_tomasi/py_shi_tomasi.html#shi-tomasi
總結(jié)
到此這篇關(guān)于OpenCV特征提取與檢測之Shi-Tomasi角點檢測器的文章就介紹到這了,更多相關(guān)OpenCV Shi-Tomasi角點檢測器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用keras實現(xiàn)孿生網(wǎng)絡(luò)中的權(quán)值共享教程
這篇文章主要介紹了使用keras實現(xiàn)孿生網(wǎng)絡(luò)中的權(quán)值共享教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06獲取python的list中含有重復(fù)值的index方法
今天小編就為大家分享一篇獲取python的list中含有重復(fù)值的index方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06使用Python實現(xiàn)在Word文檔中進行郵件合并
郵件合并是現(xiàn)代辦公中一項顯著提升效率的技術(shù),它巧妙地將大量個體數(shù)據(jù)與預(yù)設(shè)的文檔模板相結(jié)合,實現(xiàn)了一次性批量生成定制化文檔,下面我們就來看看如何使用Python實現(xiàn)在Word文檔中進行郵件合并吧2024-04-04Django-rest-framework中過濾器的定制實例
這篇文章主要介紹了Django-rest-framework中過濾器的定制實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04Python3.5實現(xiàn)的羅馬數(shù)字轉(zhuǎn)換成整數(shù)功能示例
這篇文章主要介紹了Python3.5實現(xiàn)的羅馬數(shù)字轉(zhuǎn)換成整數(shù)功能,涉及Python字符串遍歷與數(shù)值運算相關(guān)操作技巧,需要的朋友可以參考下2019-02-02