C++ 使用广义hough变换比较任意形状
我使用广义霍夫变换来区分各种任意形状。我将要处理的几个形状如下所示: 我已成功实施了以下步骤: A)转型/培训阶段 i)获取二值图像的阈值 ii)使用cvFindContour获取轮廓 iii)计算每个边缘像素的距离“r”和梯度方向(φ) iv)创建R表 为每个形状创建一个R表数据库 B)识别 i)获取任意形状的轮廓 ii)计算每个边缘像素的梯度方向 iii)使用R-table构建蓄能器 我的问题是我该如何进一步C++ 使用广义hough变换比较任意形状,c++,image-processing,opencv,hough-transform,C++,Image Processing,Opencv,Hough Transform,我使用广义霍夫变换来区分各种任意形状。我将要处理的几个形状如下所示: 我已成功实施了以下步骤: A)转型/培训阶段 i)获取二值图像的阈值 ii)使用cvFindContour获取轮廓 iii)计算每个边缘像素的距离“r”和梯度方向(φ) iv)创建R表 为每个形状创建一个R表数据库 B)识别 i)获取任意形状的轮廓 ii)计算每个边缘像素的梯度方向 iii)使用R-table构建蓄能器 我的问题是我该如何进一步 如何使用此累加器数据检测形状?基本上,一旦获得累加器图像,就必须找到其中的峰值,
如何使用此累加器数据检测形状?基本上,一旦获得累加器图像,就必须找到其中的峰值,即“投票数”最高的像素(或单元格),峰值应大致表示形状的位置
有很多关于广义Hough教程的教程,我喜欢M.Ulrich的论文中的一个,图4.3、4.4和4.5清楚地解释了这个主题。基本上,一旦你有了累加器图像,你就必须找到其中的峰值,即“投票数”最高的像素(或单元),粗略地说,峰值应该代表形状的位置
有很多关于广义Hough教程的教程,我喜欢M.Ulrich的论文中包含的一个,图4.3、4.4和4.5清楚地解释了这个主题。也许你可以要求,以便检测必须找到峰值(最大值)的形状在累加器图像中。为了检测形状,您可能需要在累加器图像中找到峰值(最大值)。