image - 如何使用带圆圈的矩阵作为蒙版?
问题描述
我是 MATLAB 的新手,将其用于一些医学分析。我有一个矩阵,其中包含一个圆形。这是一个示例:
0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0
0 0 0 1 0 1 1 0 0 0
0 0 1 0 0 0 0 1 0 0
0 1 0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 0 0 0
0 0 1 1 0 1 1 0 0 0
0 0 0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
这个矩阵是由这条线计算出来的:
egslbr= edge(slbr,'log');
哪里 slbr 是我的形象。通过将 egslbr 与我的 slbr 合并,我得到了下面的图像。
我想取消绿色圆圈之外的所有颜色像素。有没有办法做到这一点?
解决方案
您应该能够从您的圆圈中创建一个蒙版(假设它是一个完整的圆圈——您提供的示例矩阵中有一个间隙,这使得这变得更加困难,但我会假设这是一个错误)。这是一个简单的方法:
mask = ~cumsum(egslbr) | ~cumsum(egslbr,'reverse');
slbr(mask) = 0;
这应该将圆外的每个像素(不包括圆的边缘)设置为零。
推荐阅读
- microsoft-graph-api - 图形生命周期通知未注册正确的端点
- c# - 在 C# 中读取 SQL Server 存储过程的返回值?
- postgresql - 如何解释在 pgAdmin4 中分析 PostgreSQL plpgsql 函数?
- javascript - 有没有办法强制渲染 React 组件?
- dpdk - 当我运行基于 suricata 的 dpdk 时,端口总是返回 0
- c# - OnCollisonEnter2D Unity c# 用于 2D 碰撞的脚本不起作用
- python - Python - 网页抓取。从表中获取内容
- grails - Grails 4.0.1 错误启用休眠二级缓存
- amazon-web-services - ERR_TIMEOUT aws 托管区域
- amazon-web-services - AWS:如何让 Cloudfront 触发 S3 重定向规则?