在利用進行影象形態學處理的時候,經常需要去除面積較大或面積較小的連通區域。
對於去除面積較小的連通區域,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...