我的目标是检测叶子中的静脉模式,这是各种植物的特征
我已经完成了以下工作:
原始图片:
自适应阈值处理后:
然而静脉不清晰并且变形,有没有办法让我获得更好的输出
编辑:
我尝试了颜色阈值处理我的结果仍然不能令人满意我得到以下图片
请帮忙
答案 0 :(得分:5)
它的JPEG图像会产生“块”伪影这一事实,在您发布的示例中导致静脉周围的大多数方形区域都有很多噪声,因此理想情况下处理的图像不是通过有损压缩。如果那是不可能的,那么尝试过滤图像以消除一些噪音。
您想要提取的静脉具有与背景,叶子和阴影不同的颜色,因此某种基于颜色的阈值可能是个好主意。最近有S.O.一些代码可能有用here的问题。 之后,某种自适应标准化有助于在阈值之前增加对比度。
[编辑]
也许阈值处理不是您想要做的中间步骤。我做了以下过滤,以删除jpeg工件,做一些CMYK通道数学(更多青色和黑色),然后应用自适应均衡。我很确定你可以继续使用图像渐变和非最大值抑制产生(亚像素可能)边缘点,并且可以使用每个点的亮度和静脉结构的属性(主要是在切线处连接)到将点加入线。
答案 1 :(得分:4)
过去,我使用边缘检测算法difference of Gaussian获得了很好的体验。这基本上是这样的: 您使用gaussian blurr algorithm将图像模糊两次,但模糊半径不同。 然后计算两个图像之间的差异。
彼此相同颜色的像素将创建相同的模糊颜色。 具有彼此不同颜色的像素将产生取决于模糊半径的渐变。对于更大的半径,梯度将延伸更远。对于较小的那些它不会。
所以基本上这是带通滤波器。如果选择的半径很小,则徒劳的vill会产生2条“平行”线。但由于叶片的静脉与图像的延伸相比较小,因此您最常找到半径,其中静脉导致1行。
这里我添加了已处理的图片。 我在这张照片上做的步骤:
这只是一个快速创建的结果。我猜想通过优化参数,您甚至可以获得更好的参数。
答案 2 :(得分:1)
这听起来像我在大学里用神经网络做的事情。神经网络的东西有点难,所以我不会去那里。无论如何,模式是2D傅立叶变换的完美候选者!这是一个可能的方案:
只要图像具有大致相同的旋转,您应该期望用这种原始方法识别~70%。如果图像不是相同的旋转。您可能必须使用SIFT。为了获得更好的识别,您将需要更多智能训练集,例如隐马尔可夫模型或神经网络。事实是,为这类问题取得好成绩可能是相当多的工作。
退房:https://theiszm.wordpress.com/2010/07/20/7-properties-of-the-2d-fourier-transform/