Opencv边缘提取

use*_*375 4 opencv image image-processing edge-detection

我有一个图像,我想创建一个边缘直方图.我将图像分成1100个图像块并尝试在每个块中找到边缘及其方向(水平,垂直,45°对角线,135°对角线或非定向).

如何提取有关边缘的信息?你有什么想法?

问候!

use*_*375 9

我在本文中找到了答案:通过Won有效使用MPEG-7边缘直方图描述符.

我的目标是找到以下边缘:

边缘类型

将每个图像块分成4个部分,计算每个图像块的平均灰度级并使用以下系数:

coeffs

我们使用这个系数如下,得到5个值:

指标

使用阈值处理我们估计每种类型的边缘:

program SetEdgeType(max, m_nd, m_h, m_v, m_d_45, m_d_135)
{
if (max < TEdge) then EdgeHisto(0)++
else
{
 if (m_nd > T0)    then EdgeHisto(1)++
 if (m_h > T1)     then EdgeHisto(2)++
 if (m_v > T1)     then EdgeHisto(3)++
 if (m_d_45 > T2)  then EdgeHisto(4)++
 if (m_d_135 > T2) then EdgeHisto(5)++
}
endif
return(EdgeHisto)
}
Run Code Online (Sandbox Code Playgroud)

Savvas A.Chatzichristofis选择阈值为:TEdge = 14,T0 = 0.68,T1 = T2 = 0.98.