【问题标题】:Detecting a shape inside of a matrix检测矩阵内部的形状
【发布时间】:2016-07-13 07:36:22
【问题描述】:

假设您有一个如下所示的矩阵:

var map = 
[
[0,0,0,0,0,0],
[0,1,1,1,1,0],
[0,1,0,0,1,0],
[0,1,1,1,1,0],
[0,0,0,0,0,0],
[0,0,0,0,0,0],
];

可以用什么方法来确定1s 的矩阵里面有一个正方形0s?多个正方形/矩形相互偏移怎么办(不重叠,只是可能并排)?

我确信已经为这些事情制定了方法,我很想了解它们。

【问题讨论】:

  • 我可以帮你说明你的真实需求......
  • @piyushbarua 我试图在二维数组中找到正方形或矩形的边界。最终结果是映射数组中正方形的边界,并将其转换为 canvas 或 HTML <area>s 之类的其他内容。

标签: javascript arrays matrix


【解决方案1】:

首先,这是一个宽泛的图像处理问题,

概念可以命名为shape numbersshape numberingobject detectionOCR强>等....,

您可以使用 OpenCV 库来检测形状。

试试这个问题How to detect simple geometric shapes using OpenCV

--编辑---

最终的数值解决方案是使用数值边缘检测和细线方法,例如 CannyRobert CrossPrewittSobel 运算符和 kernelconvolution matrix 方法将帮助您。

以上所有操作符都可以在MatlabOpenCV ....等软件中执行

对于 JavaScript,您可以尝试使用以下库

FabricJS http://fabricjs.com/

Orcad http://antimatter15.com/ocrad.js/demo.html

形状检测器 https://github.com/MathieuLoutre/shape-detector

一个神经网络库

大脑 https://github.com/harthur/brain

大脑演示http://katspaugh.github.io/whiteboard/examples/brain/#rect

我认为 brain 在矩阵中使用相似的 1 和 0,这可能更适合您的整数数组

【讨论】:

  • 我发现的大多数图像处理都是文字图像,通常在这个特定问题之上非常抽象,而不是在二维数组中找到相似数据点的形状。这些是否直接适用,我应该尝试寻找/寻找更具体的内容?
猜你喜欢
  • 2016-04-23
  • 1970-01-01
  • 1970-01-01
  • 2023-03-13
  • 2019-05-11
  • 2021-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多