2016-02-25 23 views
0

我正在使用imregionalmax創建二進制映像BW,該映像標識了映像中的區域最大值。使用regionprops時增加二進制映像(BW)中單個連接組件的大小

接下來,我想使用regionprops和屬性WeightedCentroid來標識圖像中質心的座標。但是,imregionalmax會返回一個帶有非常小的連接組件的二進制映像,需要增加尺寸才能使regionprops正確稱量質心。

可能的解決方案:

  1. 我認爲理想的情況是在每次迭代中斷regionprops操作,並且只需添加一對夫婦的增加電流連接組件,它正在與大小像素的高度和寬度。

  2. 在情況下,這是不可能的,周圍的工作可能是BW分成圖像堆棧在每個切片僅單個連接的組件,通過一些像素擴大的每個組件,並且每個單獨的圖像切片上運行regionprops。這似乎並不是解決這個問題的有效方法。

有沒有另一種更有效的方法,我將如何實現這一點?

**我知道在BW中增加連接組件的一種方法是使用imdilate,但這會導致未連接的組件連接。

**的另一種選擇是使用具有bwmorph屬性thicken,其執行得非常好,但是在多個部件相互靠近的情況下,大小不能在一個方向上增加,並且減少的WeightedCentroid性能。

回答

0

無法通過擴展要測量什麼提高測量精度...

重心簡直是所有區域座標的平均值。 如果您沒有二進制圖像,WeightedCentroid只會考慮強度。

如果你用任何你喜歡的算法增加你的對象,你就有可能將你的質心從它的真實位置移開!

+0

在我的情況下,二進制圖像'BW'只用作「掩碼」,因此增加這個二進制區域確實會提高準確性,因爲感興趣圖像上的較大區域將用於查找質心。 – Johannes

+0

那麼你應該提到:)我想最好的辦法是從每個blob創建單獨的面具,並擴大他們,直到他們的大小足夠。當然,你可能冒險掩蓋其他區域的像素,這將再次導致錯誤。所以你必須定義一些規則如何應對重疊的口罩。您應該提供示例圖像。否則它不可能給你一個滿意的答案。 – Piglet

相關問題