您好我正在尝试使用 MatLab 过滤包含 4 个对象的图像。我的第一张图像有一个黑色背景和白色物体,所以我很清楚通过使用 BW 标签找到这些大的白色部分并将它们与图像分离来过滤掉每个图像。
下一张图片虽然有噪点。现在我有一张白线穿过我的对象的图像,它们现在实际上是相互连接的。如何在 MatLab 中过滤掉这些行?椒盐噪声怎么样?是否有 MatLab 函数可以做到这一点?
您好我正在尝试使用 MatLab 过滤包含 4 个对象的图像。我的第一张图像有一个黑色背景和白色物体,所以我很清楚通过使用 BW 标签找到这些大的白色部分并将它们与图像分离来过滤掉每个图像。
下一张图片虽然有噪点。现在我有一张白线穿过我的对象的图像,它们现在实际上是相互连接的。如何在 MatLab 中过滤掉这些行?椒盐噪声怎么样?是否有 MatLab 函数可以做到这一点?
可以通过多种方式过滤噪声。典型的噪声过滤过程将是阈值>中值过滤>模糊>阈值。然而,关于噪声类型的信息对于适当的噪声过滤可能非常重要。例如,由于您的图像中有线条,您可以尝试使用霍夫变换来检测它们并将它们从游戏中取出(或houghlines)。另一种方法可以是实施RANSAC。对于椒盐噪声类型,应该使用具有适当窗口大小的medfilt2来捕获噪声特征(例如 3x3 窗口将很好地处理 1 像素大的噪声波动......)。
如果您可以忍受稍微扭曲对象,您可以使用带有一点对比度拉伸的闭合(形态)过滤器。您将需要图像处理工具箱,但这是总体思路。
我附上了一个我必须为学校项目做的例子。在我的例子中,背景是白色的,物体是黑色的,我在腐蚀和膨胀之间伸展。侵蚀后你看不到灰色,但它就在那里(因此有必要进行阈值处理)。
您当然可以直接进行关闭(腐蚀后膨胀),然后进行阈值。请注意此过滤如何扭曲对象。
仅供参考,通常使用移动平均滤波器清除椒盐噪声,但这会留下图像灰度。对于我的项目,我需要一个纯黑白(用于 BW 标签),并且形态过滤器可以很好地完全消除噪音。