如何使用JavaScript检测图像中感兴趣的区域

时间:2017-08-15 21:18:56

标签: javascript image-processing jsfeat

我想在JS中检测矩形卡(名片)。我在这里找到了类似的实现 -

类似于此链接但在JavaScript中的内容 - https://mathematica.stackexchange.com/questions/21059/how-can-i-detect-a-rectangular-region-of-interest-in-a-picture

我使用JSfeat库使图像模糊并检测到边缘。我应该如何使用JS找到其中的矩形形状。 另外,我已经读过霍夫变换可以提供帮助。

有任何线索吗?

1 个答案:

答案 0 :(得分:0)

有多种方法可以实现这一目标。霍夫变换是其中之一,您可以使用one of jsfeat's method(遗憾的是,没有相关文档,但是据我所知,它接受以下参数:

  • 图像(采用jsfeat的t_matrix格式,可能必须先进行灰度处理)
  • rho分辨率(更大-更精确的发现,更慢)
  • theta分辨率(更大-更精确的发现,更慢)
  • threshold-结果中必须包含多少点

该方法应返回一个包含[rhotheta]对的数组,其中theta是直线的角度,rho是直线和坐标系的0;您需要试验这些参数(尤其是threshold),并尝试找到一组最有可能形成矩形(可能但不必倾斜)的四行。

您可能还应该阅读wiki page on Hough transform,以掌握其工作原理。

如果您只需要检测与屏幕平行的名片(我的意思是水平边缘与屏幕水平边缘平行,垂直方向相同),则计算Scharr导数可能更容易(jsfeat also has a method for that ),并尝试找到两个最显着的垂直和水平边缘(请记住,当颜色从黑暗变为明亮时,Scharr边缘为负,反之则为正,因此您需要计算绝对值以解决这两种情况)。