作者fxxkjoe1231 (鲁到入味)
看板MATLAB
标题[讨论] 两张二值化影像取联集
时间Thu May 23 22:29:03 2019
各位好,小弟的问题如下:
有两张二值化影像BW1与BW2,两张影像尺寸一致,
BW1中有许多散布的大型区块;而BW2则是相较之下较小区块散布其中,
目前想要将BW1中对应BW2小区块重叠的区块保留,无重叠的区块值改为0,
想请问版上各位先进是否有推荐的函式或想法供参考?
目前我有想过使用regionprops取出BW1中各区块的二值影像
(假设有BW1有二十万个区块,则分别有二十万张二值影像)
再以回圈进行处理,但在运算效能太差,先谢过版上各位!
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.169.139.62
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/MATLAB/M.1558621745.A.BD7.html
1F:推 sunev: BW1&BW2 ? 05/23 22:45
S大您好,我说的不太清楚,再补充一下,BW1与BW2是大概4000x4000的二值化阵列,
BW1内1的分布大概是数千数万个pixel组成区块在其中;
而BW2则是数十到数百之间,两者形状都不规则
※ 编辑: fxxkjoe1231 (1.169.139.62), 05/23/2019 22:54:28
※ 编辑: fxxkjoe1231 (1.169.139.62), 05/23/2019 22:57:13
自问自答一下,概念上似乎取intersect(BW1,BW2)?
明天进公司再验证看看
※ 编辑: fxxkjoe1231 (1.169.139.62), 05/23/2019 23:13:03
2F:推 sin55688: 如果没理解错你的叙述的确,直接两张图点乘就可以了 05/24 01:09
3F:→ sin55688: 确(x) 话(o) 05/24 01:10
4F:推 sppmg: 楼上两楼都可以,1F或许比较快。这两种都是基於像素处理。 05/24 01:32
5F:→ sppmg: 如果你有其他要求如少於某数量丛集不算可能就不适合。 05/24 01:33
6F:→ fxxkjoe1231: 大家好,我试了一下,发现以上方法取出来的联集是以p 05/24 17:14
7F:→ fxxkjoe1231: ixel为单位,也就是说,如果该区块内若有对应联集的p 05/24 17:14
8F:→ fxxkjoe1231: ixel,会保留下来的只有那些pixel而不是完整的区块 05/24 17:14
9F:→ kevio: 两个矩阵点乘後 再用一个9*9(size可变)的遮罩去处理即可 05/25 22:57
10F:→ kevio: 你要大一点就25*25 小一点就3*3 去判断范围内数值为1的 05/25 22:58
11F:→ kevio: 多少以上就改为1 多少以下就改为0 这样可删去pixel位置 05/25 22:59
12F:→ kevio: 但 原区块会因为大遮罩而边缘变小 所以遮罩大小要慎选 05/25 23:00
13F:→ kevio: 你可试试 medfilt2 看看 05/25 23:04
谢谢大家,後来是用bwlabel将BW1中各区块编号,之後再个别取出并与BW2取联集
※ 编辑: fxxkjoe1231 (36.225.89.111), 05/26/2019 23:53:12