中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++ OpenCV特征提取之如何實現Harris角點檢測

發布時間:2021-11-26 10:13:37 來源:億速云 閱讀:658 作者:小新 欄目:大數據

這篇文章主要介紹C++ OpenCV特征提取之如何實現Harris角點檢測,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

簡介

算法基本思想是使用一個固定窗口在圖像上進行任意方向上的滑動,比較滑動前與滑動后兩種情況,窗口中的像素灰度變化程度,如果存在任意方向上的滑動,都有著較大灰度變化,那么我們可以認為該窗口中存在角點。

關于角點的應用在圖像處理上比較廣泛,如圖像匹配(FPM特征點匹配)、相機標定等。網上也有很多博客對Harris角點檢測原理進行描述,但基本上只是描述了算法流程,而其中相關細節并未作出解釋,我們簡單補充說明一下

角點

下面有兩幅不同視角的圖像,通過找出對應的角點進行匹配。

C++ OpenCV特征提取之如何實現Harris角點檢測

再看下圖所示,放大圖像的兩處角點區域:

C++ OpenCV特征提取之如何實現Harris角點檢測

我們可以直觀的概括下角點所具有的特征:

>輪廓之間的交點;

>對于同一場景,即使視角發生變化,通常具備穩定性質的特征;

>該點附近區域的像素點無論在梯度方向上還是其梯度幅值上有著較大變化;

算法基本思想是使用一個固定窗口在圖像上進行任意方向上的滑動,比較滑動前與滑動后兩種情況,窗口中的像素灰度變化程度,如果存在任意方向上的滑動,都有著較大灰度變化,那么我們可以認為該窗口中存在角點

先上效果視頻

相關API

cornerHarris(InputArray src, OutputArray dst, int blockSize, int apertureSize, double k, int borderType=BORDER_DEFAULT )

參數:

  • src – 輸入單通道8位或浮點圖像.

  • dst – 圖像存儲Harris檢測器響應。它具有CVY32 FC1類型,大小與SRC相同

  • blockSize – 鄰域大小

  • apertureSize – 索貝爾算子參數值

  • k – Harris檢測器的閾值

  • boderType – 參數

實現步驟

  1. 將圖像轉為灰度圖(cvtcolor)

  2. 創建一個CV_32FC1的同樣大小圖像(Mat::zeros(size,CV_32FC1))

  3. 進行Harris角點檢測(cornerHarris)

  4. 歸一化(normalize)

  5. 轉化為絕對值(convertScaleAbs)

  6. 把獲取到的的大于閾值的的角點畫紅色的圓顯示出來

代碼演示

我們新建一個項目opencv--connerharris,簡單說一下,以后我們就不再說了,我們把Opencv3.4.1重新用Cmake編譯了一遍,因為做特片簡單需要加入Opencv-contrib的庫,所以我們重新編譯在newbuild里了,同時編譯環境也重新配了一個,配置里面多少一些DLL和LIB別的還是按照配置屬性(VS2017配置OpenCV通用屬性),然后在源文件寫入#include和main方法

C++ OpenCV特征提取之如何實現Harris角點檢測

在上面定義一個默認閾值和一個過程方法,因為我們用到了Trackbar

C++ OpenCV特征提取之如何實現Harris角點檢測

然輸出圖像上創建Trackbar

C++ OpenCV特征提取之如何實現Harris角點檢測

在過程前先轉為灰度圖

C++ OpenCV特征提取之如何實現Harris角點檢測

接下來就是重點,我們的Harris_Deal的方法

C++ OpenCV特征提取之如何實現Harris角點檢測

C++ OpenCV特征提取之如何實現Harris角點檢測

顯示效果

C++ OpenCV特征提取之如何實現Harris角點檢測


以上是“C++ OpenCV特征提取之如何實現Harris角點檢測”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

彩票| 成安县| 景东| 崇仁县| 洛扎县| 思南县| 通城县| 沂源县| 包头市| 斗六市| 乌苏市| 天柱县| 秦皇岛市| 镇沅| 长乐市| 呼图壁县| 太康县| 微博| 白山市| 汝州市| 龙山县| 拉孜县| 卓资县| 双城市| 黑龙江省| 抚顺市| 泰顺县| 义马市| 彭泽县| 马鞍山市| 娄烦县| 鄂伦春自治旗| 长子县| 长治市| 玉门市| 武定县| 红安县| 安远县| 山西省| 聊城市| 呼伦贝尔市|