gpt4 book ai didi

c++ - 如何着手一个非常基本的计算机视觉算法

转载 作者:行者123 更新时间:2023-11-28 06:09:51 24 4
gpt4 key购买 nike

我尝试使用 Open CV 和另一个 CCV 库,它们都是开源 Material ,但源代码量很大,而我的要求只是检测较大图像中的矩形并提取它们。我被迫让我的应用占用的空间非常小。

让我们说在位图数组中加载任何格式(JPEG、PNG 等)的图像后下一步应该做什么,假设矩形允许很少的容错、角度校正、清晰的边界线(但在其主体颜色上不是单一的) ) 并且可以是任何宽度/高度。

最佳答案

如果您真的不想使用 OpenCV 或其他计算机视觉库,您可以实现必要的算法。

我不确定为什么您的二进制文件会非常大。您只需要包含 imgproc 和 core 的代码(我想,我已经有一段时间没用过了)。

您需要分割图像。你的前景是你想要测试的形状,背景是其他一切。如果您知道它们是什么颜色或背景是什么颜色,这还不算太糟糕。

计算前景中的连通分量。这将提取形成 Blob 的像素。 (从左上角到右下角和右下角到左上角的简单线性传递将在 2N 次内完成)。

一旦你有了连接的组件,你就可以计算每个组件的第 0 个、第 1 和第 2 个中心图像矩。 https://en.wikipedia.org/wiki/Image_moment还不错。

第 0 时刻是连通分量的面积。第一时刻是 Blob 的质心。第二个时刻可以告诉你物体的旋转。二阶中心矩协方差矩阵的特征值将与矩形的长轴和短轴成正比。

这将为您提供有关您的 blob 的信息。 IE。它在图像中的位置及其旋转。

要确定该 Blob 是否为矩形,有几种方法。您可以使用 Hough 变换,请参阅 Rectangle detection with Hough transform

或者您可以尝试使用给定面积和长轴(长度)和短轴(宽度)与 blob 的实际紧凑度成比例来计算矩形的预期紧凑度(周长/面积)。如果它足够近,那么您就会得到一个类似矩形的对象。 (取决于距离有多近,你可能会得到比矩形更椭圆的东西)。

虽然这些算法实现起来并不是特别困难,但要让它们完美地协同工作可能很困难。您可能更容易找到需要包含在二进制文件中的 OpenCV 的哪些部分,并且只包含这些部分。

关于c++ - 如何着手一个非常基本的计算机视觉算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31498226/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com