【问题标题】:Binary Erosion coming up black二元腐蚀变黑
【发布时间】:2016-11-09 18:07:47
【问题描述】:

我正在尝试为二值图像实现形态腐蚀操作。我运行后一切都是黑色的。我已将结构元素(int 数组元素)设置为 3x3 正方形。

const int radius = 1;
int element[(radius * 2 + 1)*(radius * 2 + 1)] = { 1,1,1,1,1,1,1,1,1 };
int iBitPerPixel = pDoc->_bmp->bitsperpixel;
int iWidth = pDoc->_bmp->width;
int iHeight = pDoc->_bmp->height;
BYTE *pImg = pDoc->_bmp->point;
int Wp = iWidth;

BYTE copy[319*240*10];

int r = (3 * iWidth) % 6;
int p = (6 - r) % 6;
Wp = 3 * iWidth + p;



for (int i = iHeight - 1; i >= 0; i--)
    for (int j = 0; j < iWidth; j++)
    {
        copy[i*Wp + j * 3] = pImg[i*Wp + j * 3];
        pImg[i*Wp + j * 3] = 0;
        pImg[i*Wp + j * 3 + 1] = 0;
        pImg[i*Wp + j * 3 + 2] = 0;
    }

bool fit = true;
for (int i = iHeight - 1; i >= 0; i--)
    for (int j = 0; j < iWidth; j++)
    {
        for (int x = radius; x <= -radius; x--)
            for (int y = -radius; y <= radius; y++)
            {
                if (i + x < 0 || i + x >= iHeight|| j + y < 0) continue;
                if (element[(x + radius)*radius + y + radius] == 1 && copy[(i + x)*Wp + (j + y) * 3] == 0)
                {
                    fit = false;
                    break;
                }
            }

        if (fit)
            for (int x = radius; x <= -radius; x--)
                for (int y = -radius; y <= radius; y++)
                    pImg[(i + x)*Wp + (j + y) * 3] = 255;

    }

【问题讨论】:

    标签: c++ image-processing image-morphology


    【解决方案1】:

    你在这个循环中犯了两个错误:for (int x = radius; x &lt;= -radius; x--)。你将x初始化为1,然后条件为x &lt;= -1,所以你永远不会进入循环。

    附件:

    1. 为什么i 和j 上的两个循环不朝着同一个方向?
    2. 我不明白你想在测试中做什么if (element[(x + radius)*radius + y + radius] == 1 &amp;&amp; copy[(i + x)*Wp + (j + y) * 3] == 0)。侵蚀的原理是在给定的邻域内保持最小值(由结构元素定义)。
    3. 除非您想自己实现这些方法以了解基本算法的工作原理,否则您将在SMIL 库中找到高度优化的数学形态学方法。还有 OpenCV。

    【讨论】:

      猜你喜欢
      • 2014-07-26
      • 2020-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-08
      相关资源
      最近更新 更多