matlab去除大面積連通區域

2021-08-18 08:51:07 字數 1107 閱讀 8172

在利用進行影象形態學處理的時候,經常需要去除面積較大或面積較小的連通區域。

對於去除面積較小的連通區域,matlab提供了現有的函式

bw2 = bwareaopen(bw,p,conn)  %刪除二值影象bw中面積小於p的物件,預設情況下conn使用8鄰域
可是matlab並沒有去除面積較大連通區域的函式,當然網上也有各種方法來解決這個問題,不過有些繁瑣。今天博主給大家介紹乙個超級簡單且nb的方法。開啟matlab,在命令列輸入

bwareaopen
選中右擊,開啟所選內容,也就是開啟bwareaopen這個函式

然後我們在函式中找到這個位置,

將其中的

area >= p
修改為

area <= p
然後,修改函式名並另存為removelargearea,注意:一定是另存,否則bwareaopen就變成去除較大面積的聯通區域了。

此時,我們獲得了乙個函式,然後類似bwareaopen直接呼叫即可。

bw2 = removelargearea(bw,p,conn)  %刪除二值影象bw中面積大於p的物件,預設情況下conn使用8鄰域
可以將這個函式和bwareaopen放在乙個路徑下,以後直接呼叫即可(推薦);也可以放在你的工作目錄下,不過更換目錄時,需要將函式貼上過去。

最大面積問題 LargestReactangle

描述 在下列非負陣列中找出最大面積 heigh 0,2,1,3,4,3,2,0 若干非負陣列組成面積不同的矩形,求上述中的最大面積。在圖中畫出了下標 3 5 高度為3,面積為9的矩形和下標為 1 6 高度為1面積為6的矩形。思路 暴力遍歷 1 從下標i開始,對於每乙個高度heigh i h,向左遍歷...

10 18 最大面積 2432

學過初三數學或圓的相關知識的人都會求陰影部分面積。垂徑定理和勾股定理 s陰 a r2 1 2 a 2 b r 2 1 2 b 2 a b 然後就可以列舉a,b找最大值 a,b 2r var r,a,b,i,j longint c,max,b1,a1 double begin readln r for...

島嶼的最大面積

給定乙個包含了一些 0 和 1的非空二維陣列 grid 乙個 島嶼 是由四個方向 水平或垂直 的 1 代表土地 構成的組合。你可以假設二維矩陣的四個邊緣都被水包圍著。找到給定的二維陣列中最大的島嶼面積。如果沒有島嶼,則返回面積為0。示例 1 0,0,1,0,0,0,0,1,0,0,0,0,0 0,0...