導航:首頁 > 源碼編譯 > 圖像連通區域標記演算法

圖像連通區域標記演算法

發布時間:2025-09-05 16:11:53

A. 如何判斷一個區域是否是連通的 matlab

matlab函數_連通區域

1、 matlab函數bwareaopen──刪除小面積對象
格式:BW2 = bwareaopen(BW,P,conn)
作用:刪除二值圖像BW中面積小於P的對象,默認情況下使用8鄰域。
演算法
(1)Determine the connected components.
L = bwlabeln(BW, conn);
(2)Compute the area of each component.
S = regionprops(L, 'Area');
(3)Remove small objects.
bw2 = ismember(L, find([S.Area] >= P));

2、matlab函數bwarea──計算對象面積
格式:total = bwarea(BW)
作用:估計二值圖像中對象的面積。
註:該面積和二值圖像中對象的像素數目不一定相等。

3、matlab函數imclearborder──邊界對象抑制
格式:IM2 = imclearborder(IM,conn)
作用:抑制和圖像邊界相連的亮對象。若IM是二值圖,imclearborder將刪除和圖像邊界相連的對象。默認情況conn=8。
註:For grayscale images, imclearborder tends to rece the overall intensity level in addition to suppressing border structures.
演算法:
(1)Mask image is the input image.
(2)Marker image is zero everywhere except along the border, where it equals the mask image.

4、matlab函數bwboundaries──獲取對象輪廓
格式:B = bwboundaries(BW,conn)(基本格式)
作用:獲取二值圖中對象的輪廓,和OpenCV中cvFindContours函數功能類似。B是一個P×1的cell數組,P為對象個數,每個cell 是Q×2的矩陣,對應於對象輪廓像素的坐標。

5、matlab函數imregionalmin──獲取極小值區域
格式:BW = imregionalmin(I,conn)
作用:尋找圖像I的極小值區域(regional maxima),默認情況conn=8。
Regional minima are connected components of pixels with a constant intensity value, and whose external boundary pixels all have a higher value.

6、matlab函數bwulterode──距離變換的極大值
格式:BW2 = bwulterode(BW,method,conn)
作用:終極腐蝕。尋找二值圖像BW的距離變換圖的區域極大值(regional maxima)。用於距離變換的距離默認為euclidean,連通性為8鄰域。

7、regionprops統計被標記的區域的面積分布,顯示區域總數。
函數regionprops語法規則為:STATS = regionprops(L,properties)
該函數用來測量標注矩陣L中每一個標注區域的一系列屬性。
L中不同的正整數元素對應不同的區域,例如:L中等於整數1的元素對應區域1;L中等於整數2的元素對應區域2;以此類推。

返回值STATS是一個 長度為max(L(:))的結構數組,結構數組的相應域定義了每一個區域相應屬性下的度量。

Properties可以是由逗號分割的字元串列表、包含字元 串的單元數組、單個字元串'all'或者'basic'。如果properties等於字元串'all',則表4.1中的度量數據都將被計算;如果properties等於字元串'basic',則屬性:'Area','Centroid'和'BoundingBox'將被計算。表1就是所有有效的屬性字元串。

表1 屬性字元串列表----度量圖像區域的屬性或功能
'Area' 圖像各個區域中像素總個數
'BoundingBox' 包含相應區域的最小矩形
'Centroid' 每個區域的質心(重心)
'MajorAxisLength' 與區域具有相同標准二階中心矩的橢圓的長軸長度(像素意義下)
'MinorAxisLength' 與區域具有相同標准二階中心矩的橢圓的短軸長度(像素意義下)
'Eccentricity' 與區域具有相同標准二階中心矩的橢圓的離心率(可作為特徵)
'Orientation' 與區域具有相同標准二階中心矩的橢圓的長軸與x軸的交角(度)
'Image' 與某區域具有相同大小的邏輯矩陣
'FilledImage' 與某區域具有相同大小的填充邏輯矩陣
'FilledArea' 填充區域圖像中的on像素個數
'ConvexHull' 包含某區域的最小凸多邊形
'ConvexImage' 畫出上述區域最小凸多邊形
'ConvexArea' 填充區域凸多邊形圖像中的on像素個數
'EulerNumber' 幾何拓撲中的一個拓撲不變數——歐拉數
'Extrema' 八方向區域極值點
'EquivDiameter' 與區域具有相同面積的圓的直徑
'Solidity' 同時在區域和其最小凸多邊形中的像素比例
'Extent' 同時在區域和其最小邊界矩形中的像素比例
'PixelIdxList' 存儲區域像素的索引下標
'PixelList' 存儲上述索引對應的像素坐標

B. matlab對二值圖像標記,求連通區域的周長,面積。matlab具體代碼

二值圖像中背景標記為0,聯通域標記為1,二值圖像記為a
面積的求法:
k=regionprops(a,'Area'); %k得到的是一個structure結構
S=k.Area;
周長求法:
L=length(find(bwperim(a,4)==1));
%bwperim是求圖像聯通域邊界區,對標記邊界的1進行計數。

ps:可以好好看下regionprops的用法,形態學方面的有一些很有用的處理。

C. java代碼怎麼實現計算圖像二值連通區域的質心

一:幾何距(Geometric Moments)知識與質心尋找原理

1. Image Moments是圖像處理中非常有用的演算法,可以用來計算區域圖像的質心,方向等幾何特性,同時Mpq的高階具有旋轉不變性,可以用來實現圖像比較分類,正是因為Moments有這些特性,很多手繪油畫效果也會基於該演算法來模擬實現。它的數學表達為:

它的低階M00,M01, M10可以用來計算質心,中心化以後M11,M02,M20可以用來計算區域的方向/角度

2. 什麼是質心

就是通過該點,區域達到一種質量上的平衡狀態,可能物理學上講的比較多,簡單點的說就是規則幾何物體的中心,不規則的可以通過掛繩子的方法來尋找。

二:演算法流程

1. 輸入圖像轉換為二值圖像

2. 通過連通組件標記演算法找到所有的連通區域,並分別標記

3. 對每個連通區域運用計算幾何距演算法得到質心

4. 用不同顏色繪制連通區域與質心,輸出處理後圖像

三:演算法效果

左邊為原圖, 右邊藍色為連通組件標記演算法處理以後結果,白色點為質心

四:關鍵代碼解析

1. 計算幾何距演算法代碼

doublem00 = moments(pixels, width, height, 0, 0);

doublexCr = moments(pixels, width, height, 1, 0) / m00;// row

doubleyCr = moments(pixels, width, height, 0, 1) / m00;// column

return new double[]{xCr, yCr};

D. 連通區域標記演算法概述

數字圖像處理中,像素鄰接關系主要體現在四鄰域、D 鄰域與八鄰域三種。圖像中的連通區域由相同像素值且相鄰的像素組成,連通區域標記演算法的任務則是給圖像中所有連通區域賦予不同符號。

以圖示為例,下圖.a 展示原始二值圖像,下圖.b 根據四鄰居規則標記連通區域,下圖.c 則是利用八鄰域規則。從圖中可見,四鄰域規則標記出四個獨立區域,而八鄰域規則則為三個。此標記演算法在二值化圖像上操作,旨在將感興趣前景與背景分離,為後續圖像處理提供基礎。其應用領域廣泛,如光學字元識別中的字元分割,醫學圖像處理中目標提取,視頻圖像中前景目標分割提取等。

連通區域標記演算法分為兩種常用類型:基於 Seed-Filling 的演算法與基於 Two-Pass 的演算法。Seed-Filling 演算法只需一次遍歷圖像,效率較高,而 Two-Pass 演算法需遍歷兩次,運行時間較長。本節將簡要介紹 Seed-Filling 演算法。

Seed-Filling 演算法核心思想:選取圖像中一點作為種子,依據指定鄰接關系將滿足條件的像素歸入集合中。遍歷結束後,集合內的像素點構成同一連通區域,標記為label。演算法具體步驟如下:

1. 按照從左到右、從上至下的順序遍歷圖像中的每個像素點。

2. 若像素點已遍歷,則繼續遍歷,否則跳至步驟3。

3. 將該像素點設為種子,並將其加入標記為 label 的集合中,然後使用指定鄰域關系將符合條件的像素壓入棧中。

4. 彈出棧頂像素,將其加入集合中,同時使用鄰域關系將符合條件的像素壓入棧中。

5. 重復步驟4,直至棧空,此時找到一個連通區域,其類別標記為label。

6. 重復步驟2直至遍歷完整幅圖像。

閱讀全文

與圖像連通區域標記演算法相關的資料

熱點內容
51單片機串口失靈 瀏覽:760
c課程設計pdf 瀏覽:698
電子郵件能發送文件夾么 瀏覽:442
程序員生女孩好嗎 瀏覽:123
怎麼引用加密指標 瀏覽:538
船上零部件程序員 瀏覽:171
伺服器顯示配額不足什麼原因 瀏覽:801
java添加組件 瀏覽:407
資料庫命令do是幹嘛的 瀏覽:724
php做游戲伺服器 瀏覽:685
西霧app怎麼注冊 瀏覽:72
基礎柱箍筋加密區從哪裡開始 瀏覽:950
mv移動命令 瀏覽:61
怎麼遠程讀取雲伺服器上的文件 瀏覽:149
安卓機什麼最耐用 瀏覽:460
java驗證時間 瀏覽:641
android修改target 瀏覽:592
java數組循環輸出數組 瀏覽:933
哪些試驗可以測定土體壓縮性 瀏覽:725
裁剪演算法opengl 瀏覽:599