我需要一個快速的方式來執行圖像(矩陣)區域的閾值。 輸入是矩陣(圖像),閾值和半徑,我需要檢查給定半徑內的所有值是否都小於閾值,如果需要,我需要保存此值(像素)的座標。 我不想讓它與雙循環,因爲我需要多次執行此任務與幾個半徑。 我不關心最小值或最大值,只是像素周圍的所有值都會低於某個閾值。 任何想法將非常感激!閾值在矩陣matlab
回答
我不知道任何快速算法的圓形鄰域。但是,如果您有矩形鄰域,您可以在此處快速執行檢查以瞭解更多詳細信息: http://leetcode.com/2011/01/sliding-window-maximum.html
另外,當您有多個半徑值時,可以提高速度。簡單地從最小的值開始計算結果。對於將來的半徑值,如果一個點沒有通過前面的一個步驟,不要處理它,那麼存在一個半徑較小(因此在當前半徑內)的點,該點大於閾值。
嗨,我並不清楚閾值,它可以隨半徑改變,所以,我不能對那些沒有從上一級「通過」的像素進行測試。我想創建一個圖像大小的蒙版,只有在當前窗口(我可以在方形窗口中創建一個圓形,如下所示:http://www.mathworks.com/matlabcentral/answers/24609 ,並且只是檢查image。* mask的總和是否小於threshold * mask。我只是不知道如何避免在這種情況下的循環 – matlabit 2013-02-21 21:09:42
因此,你只需要定義一個循環過濾器,然後使用conv2或filter2運行計算總和(Matlab內部使用的FFT,所以它比嵌套循環實現方式更快) – iampat 2013-02-22 00:35:31
嗨,謝謝,這就是我要做的,編輯你的答案(與評論),我會接受它。 – matlabit 2013-02-24 08:04:58
- 1. 基於Matlab中的幾個閾值從矩陣中刪除行
- 2. MATLAB矩陣中的閾值多列,返回行
- 3. 在MATLAB矩陣
- 4. 根據閾值過濾對稱矩陣
- 5. 矩陣中的不同閾值
- 6. matlab條件矩陣賦值
- 7. Matlab的:替換矩陣值
- 8. 矩陣在Matlab中
- 9. cellarray在矩陣matlab
- 10. 以矩陣(在Matlab)
- 11. MATLAB:我想基於向量中的閾值來閾值矩陣,沒有for循環。可能?
- 12. 矩陣矩陣在Matlab中的數組?
- 13. Matlab - 矩陣陣列
- 14. 在Matlab中爲索引子矩陣的子矩陣賦值
- 15. Matlab - 在3d矩陣中查找2d矩陣值
- 16. 矩陣在Matlab中的數值積分
- 17. 在MATLAB中繪製三維矩陣*值*
- 18. 在MATLAB中映射矩陣的值
- 19. 在Matlab中更改矩陣的值
- 20. MATLAB從矩陣
- 21. Matlab大矩陣
- 22. Matlab選擇基於矩陣值的值
- 23. 將閾值應用於單元陣列內的矩陣
- 24. MATLAB用另一個矩陣替換矩陣的某些值
- 25. Matlab - 矩陣微分方程[更新矩陣值? ]
- 26. 在matlab中重塑矩陣
- 27. 尋找矩陣在MATLAB
- 28. 在matlab中拼貼矩陣
- 29. 在matlab中遞增矩陣
- 30. 在Matlab中繪製矩陣
您可以使用圓形結構元素執行膨脹,然後在生成的圖像中進行平凡的閾值處理。由於該問題被標記爲「matlab」,我想你對擴大速度並不感興趣,只是期望'matlab'能給出足夠快的速度。如果您對此感興趣,那麼關於可分解性和提高形態操作效率的相關方法的工作量很大。 – mmgp 2013-02-22 00:09:39