【问题标题】:make a mask for each well in a grid为网格中的每个孔制作一个掩码
【发布时间】:2014-02-01 17:52:47
【问题描述】:

我在image 中有一个井网格,我正在尝试在 Matlab 中对此进行分析。我想在每个井周围创建一个盒子作为面具。我试图解决这个问题的方法是找到 X 和 Y 法线的偏移向量,然后使用它来制作网格,因为我知道井的大小。

我可以遮盖一些井,但不能遮盖所有井——但这并不重要,因为我知道每个位置都有井(请参阅here)。我可以使用 regionprops 来获取中心,但我不知道如何进入下一步。

Here 是我可以提取中心的图像

有些人建议我对图像进行 FFT,但我无法让它工作。任何想法或建议将不胜感激。提前致谢!

编辑:Here 是具有 regionprops 质心特征的中心的掩码。

【问题讨论】:

    标签: image matlab image-processing matrix fft


    【解决方案1】:

    这是一个又快又脏的 2 美分:

    首先对图像进行模糊和反转,使井线的强度值比其他井线高,进一步分析对噪声不太敏感:

    im=double(imread('im.jpg'));
    im=conv2(im,fspecial('Gaussian',10,1),'same');
    im2=abs(im-max(im(:)));
    

    然后,使用(或多或少)井大小(约 200 像素)附近的平均强度取一个局部阈值

    im3=imfilter(im2,fspecial('average',200),'replicate');
    im4=im2-im3;
    bw=im2bw(im4,0);
    

    填充孔(或孔):

    [bw2,locations] = imfill(bw,'holes');
    

    删除小于某个大小的对象:

    bw3 = bwareaopen(bw2, 2000, 8);
    
    imagesc(bw3);
    

    你可以从那里拿走它...

    【讨论】:

    • 太棒了!谢谢!您是如何想到要使用这一系列过滤器的?
    • 曾几何时,我也读过文档 :) ... 其余的将随之而来。
    • 请注意,有更复杂的方法可以分割井。这真是又快又脏……
    • 这对于我的目的来说已经足够了。我已经阅读了很多文档,但没有解释如何将所有内容放在一起。何时使用高斯以及为什么使用它等。
    • 使用高斯只是为了模糊。有几种方法可以减少噪声,使用高斯滤波器的卷积就是其中之一。阅读有关此内容以及中值滤波、维纳滤波等的信息...还要注意dsp.stackexchange.com
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-22
    • 1970-01-01
    • 1970-01-01
    • 2018-05-06
    • 1970-01-01
    • 1970-01-01
    • 2023-02-03
    相关资源
    最近更新 更多