1. 程式人生 > >MSER最大穩定極值區域

MSER最大穩定極值區域

Lowe和Bay提出的SIFT和SURF演算法高效實現了具有尺度和旋轉不變性的特徵檢測,但這些特徵不具有仿射不變性。

區域檢測針對各種不同形狀的影象區域,通過對區域的旋轉和尺寸歸一化,可以實現仿射不變性。

MSER(Maximally Stable Extrernal Regions)是區域檢測中影響最大的演算法

1. 原理

MSER基於分水嶺的概念:對影象進行二值化,二值化閾值取[0, 255],這樣二值化影象就經歷一個從全黑到全白的過程(就像水位不斷上升的俯瞰圖)。在這個過程中,有些連通區域面積隨閾值上升的變化很小,這種區域就叫MSER。

,其中Qi表示第i個連通區域的面積,Δ表示微小的閾值變化(注水),當vi小於給定閾值時認為該區域為MSER。

顯然,這樣檢測得到的MSER內部灰度值是小於邊界的,想象一副黑色背景白色區域的圖片,顯然這個區域是檢測不到的。因此對原圖進行一次MSER檢測後需要將其反轉,再做一次MSER檢測,兩次操作又稱MSER+和MSER-

2. 演算法步驟

從上節可以看到,MSER的基本思路很簡單,但編碼實現是很需要演算法和程式設計技巧的

以下演算法步驟基於改進的分水嶺演算法:注水的地方固定,只有當該處的溝壑水漫出來後才能注入到另一個溝壑

此外,為方便程式設計,面積變化的計算方式也從雙邊改為單邊檢測,即

1、初始化棧和堆,棧用於儲存組塊(組塊就是區域,就相當於水面,水漫過的地方就會出現水面,水面的高度就是影象的灰度值,因此用灰度值來表示組塊的值),堆用於儲存組塊的邊界畫素,相當於水域的岸邊,岸邊要高於水面的,因此邊界畫素的灰度值一定不小於它所包圍的區域(即組塊)的灰度值。首先向棧內放入一個虛假的組塊,當該組塊被彈出時意味著程式的結束;


2、把影象中的任意一個畫素(一般選取影象的左上角畫素)作為源畫素,標註該畫素為已訪問過,並且把該畫素的灰度值作為當前值。這一步相當於往源畫素這一地點注水;


3、向棧內放入一個空組塊,該組塊的值是當前值;


4、按照順序搜尋當前值的4-領域內剩餘的邊緣,對於每一個鄰域,檢查它是否已經被訪問過,如果沒有,則標註它為已訪問過並檢索它的灰度值,如果灰度值不小於當前值,則把它放入用於存放邊界畫素的堆中。另一方面,如果領域灰度值小於當前值,則把當前值放入堆中,而把領域值作為當前值,並回到步驟3;


5、累計棧頂組塊的畫素個數,即計算區域面積,這是通過迴圈累計得到的,這一步相當於水面的飽和;


6、彈出堆中的邊界畫素。如果堆是空的,則程式結束;如果彈出的邊界畫素的灰度值等於當前值,則回到步驟4;


7、從堆中得到的畫素值會大於當前值,因此我們需要處理棧中所有的組塊,直到棧中的組塊的灰度值大於當前邊界畫素灰度值為止。然後回到步驟4。


至於如何處理組塊,則需要進入處理棧子模組中,傳入該子模組的值為步驟7中從堆中提取得到的邊界畫素灰度值。子模組的具體步驟為:
1)、處理棧頂的組塊,即根據公式2計算最大穩定區域,判斷其是否為極值區域;
2)、如果邊界畫素灰度值小於距棧頂第二個組塊的灰度值,那麼設棧頂組塊的灰度值為邊界畫素灰度值,並退出該子模組。之所以會出現這種情況,是因為在棧頂組塊和第二個組塊之間還有組塊沒有被檢測處理,因此我們需要改變棧頂組塊的灰度值為邊界畫素灰度值(相當於這兩層的組塊進行了合併),並回到主程式,再次搜尋組塊;
3)、彈出棧頂組塊,並與目前棧頂組塊合併;
4)、如果邊界畫素灰度值大於棧頂組塊的灰度值,則回到步驟1。

相關推薦

MSER穩定極值區域

Lowe和Bay提出的SIFT和SURF演算法高效實現了具有尺度和旋轉不變性的特徵檢測,但這些特徵不具有仿射不變性。 區域檢測針對各種不同形狀的影象區域,通過對區域的旋轉和尺寸歸一化,可以實現仿射

穩定極值區域MSER)檢測

Lowe和Bay提出的SIFT和SURF演算法高效實現了具有尺度和旋轉不變性的特徵檢測,但這些特徵不具有仿射不變性。 區域檢測針對各種不同形狀的影象區域,通過對區域的旋轉和尺寸歸一化,可以實現仿射不變

穩定極值區域MSERs

引言簡述Harris興趣點檢測器是一種產生平移旋轉不變結果的演算法。當噪聲和離散化的影響可以忽略時,Harris檢測器作用於旋轉或平移過程的影象,其輸出是一組旋轉或平移的點集。然而,如果影象被縮放或經過射影變換,則Harris檢測器的輸出也會劇烈變化。最大穩定極值區域(Max

基於穩定區域的影象分割演算法

面向灰度圖的最大穩定區域分割演算法最早由J. Matas在BMVC2002上提出,題目為Robust wide-baseline stereo from maximally stable extremal regions 演算法流程如下 1. 對於所有畫素按

[LeetCode] Largest Triangle Area 的三角區域

You have a list of points in the plane. Return the area of the largest triangle that can be formed by any 3 of the points. Example: Input: points = [[0

從一張圖看清世界上的數據中心分布區域

內蒙古 項目 ace net 監控 現場 萬維網 居住 為我 原文地址 去年年底,全球網站總數估計約970864745個,以每秒約2個網站的速度遞增。據互聯網研究公司Netcraft聲稱,活躍網站大約有1.77億個,使用數億個現有的主機名。 去年年底,全球網站總數估計

Leetcode 363. 矩形區域不超過 K 的數值和

一切都 msu leet 求解 數值 code In 右下角 span //沒有什麽好想法,就用暴力遍歷AC了class Solution { public: int maxSumSubmatrix(vector<vector<int>>&

Excel如何利用條件格式找出數據區域的幾項

如何 -o vpd log 麻煩 浪費 常見問題 alt 區域 要找出某個區域中數值最大的幾項,利用條件格式是最方便的。當excel中有大量的數據的時候,如果要求你找出其中的最大值和最小值,你可能非常的苦惱,如果單個進行查找那是很麻煩的,而且也浪費時間,那怎樣才能快速的找到

poj1259The Picnic & hdu6219 Empty Convex Polygon(17沈陽區域賽C)【空凸包】

pty sin ios 面積 image .cn names 鏈接 turn 題目鏈接: http://acm.hdu.edu.cn/showproblem.php?pid=6219 http://poj.org/problem?id=1259 一份代碼A兩題。 題意: 給

函式的極值小值

1.在這一章節裡面需要掌握的有三個定理: 求解極值的步驟:   2.求解最大值和最小值問題 有以下步驟:   3.習題: 1.求下列函式的極值(先要求解出定義域)

日女乒新生代伊藤美誠是威脅 國乒小將需要更穩定

11月29日訊息,@北京商報從度小滿金融人士處獲悉,百度正式拿到准許經營證券期貨的許可證。據許可證顯示,機構名稱為北京百度百盈科技有限公司(下稱“百度百盈”),證券期貨業務經營範圍為基金銷售。而今年8月22日,根據北京證監局官網顯示,證監局已核准百度百盈證券投資基金銷售業務資格。 企查查資訊顯示,百度百盈成

2016 北京區域賽 現場賽 C—Asa's Chess Problem【有源匯上下界的小費用流】

題意: 給你一個n*n(n<=50)的棋盤,棋盤上每個點0表示白棋,1表示黑棋。 接下來n行,第i行給出棋盤的 第i行 的黑棋數目的上下界[x,y]。 接下來再n行,第i行給出棋盤的 第i列 的黑棋數目的上下界[x,y]。 接下來n*n/2行,每

區域-DFS

最大黑區域 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Status Practice FZU 1082 Description 二值影象是由黑白兩種畫素組成的矩形點陣,影象

opencv 圖片連通區域識別

這裡用的opencv 的python api可能跟c的api 有少許區別 1. 圖片初期處理     gray = cv.cvCreateImage (cv.cvSize (image.width, image.height), 8, 1)     edge = cv

連續子序列 HDU - 1231

bsp 最大 程序 結構 %d col 最小 元素 class 給定K個整數的序列{ N1, N2, ..., NK },其任意連續子序列可表示為{ Ni, Ni+1, ..., Nj },其中 1 <= i <= j <= K。最大連續子序列是所有連續子

藍橋杯——算法訓練之乘積

算法 char 朋友 題意 man time space margin family 問題描寫敘述   今年是國際數學聯盟確定的“2000——世界數學年”,又恰逢我國著名數學家華羅庚先生誕辰90周年。在華羅庚先生的家鄉江蘇金壇,組織了一場別開生面的數學智力競賽的活動

2566. [51nod 1129] 字符串

運算 tdi 後來 感覺 namespace ret blog ostream 字符 【題目描述】 一個字符串的前綴是指包含該字符第一個字母的連續子串,例如:abcd的所有前綴為a, ab, abc, abcd。 給出一個字符串S,求其所有前綴中,字符長度與出現次數的乘

[POJ2446] Chessboard(二分圖匹配-匈牙利算法)

con clas sed img find span ble names printf 傳送門 把所有非障礙的相鄰格子彼此連一條邊,然後求二分圖最大匹配,看 tot * 2 + k 是否等於 n * m 即可。 但是連邊不能重復,比如 a 格子 和 b 格子 相鄰

LightOJ 1356 Prime Independence(質因數分解+獨立集+Hopcroft-Carp)

target pri 建圖 spa dfs cto rim %d 最大獨立集 http://lightoj.com/login_main.php?url=volume_showproblem.php?problem=1356 題意: 給出n個數,問最多能選幾個數,

劍指Offer之打印從1到的n位數

一位 數字 print digi mic boolean 基本 個數 recursive 基本思路   第一種方法:當我們只有對9999或者999或者99或9加1的時候,才會在第一個數字的基礎上產生進位,而其他所有情況都不好在第一個數字上產生進位。因此當我們發現在加1的時候