我需要一个快速的方式来执行图像(矩阵)区域的阈值。 输入是矩阵(图像),阈值和半径,我需要检查给定半径内的所有值是否都小于阈值,如果需要,我需要保存此值(像素)的坐标。 我不想让它与双循环,因为我需要多次执行此任务与几个半径。 我不关心最小值或最大值,只是像素周围的所有值都会低于某个阈值。 任何想法将非常感激!阈值在矩阵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