【问题标题】:stroke width transform opencv using python使用python的笔画宽度变换opencv
【发布时间】:2014-03-16 13:30:11
【问题描述】:

我有一张图片,我想在图片中查找笔画宽度。到目前为止,我能够从 Sobel 算子中找到相位角。现在如何使用它找到宽度。

Sobel operator for gradient angle

请提供有关寻找角度而非笔划宽度的帖子。

【问题讨论】:

标签: opencv


【解决方案1】:

假设你有初始点和角度(梯度)。

然后使用方程

   x2 = x1 + length * cos(θ) 
   y2 = y1 + length * sin(θ)

θ 应该是弧度

   θ= angle * 3.14 / 180.0

在循环中通过逐渐增加长度找到 x2,y2,并为每个 x2,y2 访问像素值并检查它是否是您的笔画颜色,如果它是递增计数器,则中断循环并将计数器的值作为你的笔画宽度。

      Vec3b pix=image.at<Vec3b>(y2,x2);
      if(pix==yourstrokColor)
           strokeWidth++;
      else break;

【讨论】:

  • 我将其作为代码进行了测试,效果很好。但我无法理解方程最初是如何工作的。如果你能解释一些数学知识,这将是有帮助的。感谢解决方案...跨度>
  • 实际上是圆的参数方程,您可以找到更多信息here
猜你喜欢
  • 1970-01-01
  • 2012-06-22
  • 2011-06-17
  • 2019-09-16
  • 1970-01-01
  • 2014-04-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多