簡體   English   中英

使用 SIFT 在 OpenCV 中檢測關鍵點

[英]Keypoints detection in OpenCV with SIFT

我在 OpenCV 中對圖像的關鍵點檢測有問題。 例如,如果我有一個 SIFT 檢測器,當它檢測到一個圖像時,它會檢索 1000 個關鍵點,但是如果我將圖像分成兩個“子圖像”,並且 foreach SIFT 檢測到關鍵點,則總和不是 1000,而是更少。 對我來說,關鍵點總數可以不同但不能太多! 謝謝

這不是真正的問題,但顯然問題的核心是:

為什么分開的兩個圖像具有不同數量的 SIFT 關鍵點(通常更少)而不是將它們連接成單個圖像?

基本的答案是特征可以很大,並且可以靠近兩個子圖像的邊界。 如果它們被拆分,這些特征將不再存在。 實際上,不應期望 SIFT 產生相同數量的關鍵點。 如果您嚴格地將特征視為角,那么當然——無論哪種方式,您都應該得到大致相同的數量。 但是有些特征是梯度、粗糙的“斑點”等,很容易被分割圖像切斷,因此分割圖像可以去除這些特征,並且可以類似地復制其他特征。

您通常可以通過僅檢查位於兩個子圖像邊界內的那些特征來驗證這一點。 如果您移除靠近圖像邊緣的特征,並僅檢查組合圖像相同空間中的特征,您應該會看到兩者之間的特征數量相似。

想象一下,如果您將分割圖像的過程發揮到極致。 圖像中通常有很多SIFT 關鍵點。 如果你把它分解成大量的 2x2 圖像,你認為你會得到相同數量的關鍵點嗎? 當然不是,因為 2x2 圖像沒有足夠的信息來重新創建與完整圖像相同的特征。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM