【Matlab】找到矩阵中每个连通域的最小值
1.Introduction
連通域在我淺薄的圖像處理知識中,一直是很神圣的存在。最近想在Matlab里實現的時候,發現竟然一個函數就解決了,Matlab真香!
2.Materials and methods
首先,還是介紹一下主角函數 bwlabel,看語法還是比較簡單的,其中第二個參數 conn 可以設置判斷連通域時用4連接還是8連接。另外,這種既可以輸入一個參數,又可以輸入兩個參數的函數實現,可以看我之前的博客,文末有鏈接~
ok,那接下來就實際試試吧:
這里我們選的是4聯通,如果改成8聯通的話,標簽就只剩0和1了,因為8聯通的條件更嚴格,也更難判定其為連通域。具體原理看下圖:
目前為止,我們找到了矩陣中的連通域,那么接下來就要尋找各個連通域中的最小值了。代碼如下:
代碼中的 unique 函數是確定數組中都存在哪些數,具體用法看文末鏈接。
3. Results and discussion
運行代碼,看看結果:
結果如上圖所示,代碼輸出了每個連通域最小值所處的行列坐標,代碼功能也便實現了。
4. Conclusion
其實我一直喜歡代碼開源,因為之前看了很多博客,有的是講原理沒代碼,有的放代碼沒注釋,甚至運行直接報錯。所以我就想,直接把代碼貼出來,再配一些解釋說明,方便大家使用,也希望不要再反復造輪子了。
但是,我寫代碼是我想寫,而不是我要寫。一些代碼封裝的像藝術品,有的人都不會用,真白瞎我代碼了。
猜你喜歡:👇🏻
?【Matlab】如何提取矩陣中特定位置的元素?
?【Matlab】如何確定數組中存在哪幾個數?
?【Matlab】矩陣中選取任意子矩陣
總結
以上是生活随笔為你收集整理的【Matlab】找到矩阵中每个连通域的最小值的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 充电枪cp信号控制板_筋膜枪究竟是不是智
- 下一篇: 【Matlab】到底怎么自定义color