Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在BMP图像文件中搜索形状_C#_Image Processing - Fatal编程技术网

C# 在BMP图像文件中搜索形状

C# 在BMP图像文件中搜索形状,c#,image-processing,C#,Image Processing,我有一个关于图像处理的问题,使用C# 假设我有一些BMP格式的原理图,该图包含相互连接的组件形状 我编写了一个简单的程序来检测图中的正方形作为一个组件,并记录它的位置。然而,下一个层次是检测更复杂的形状,比如连接在一起的几个圆弧。请注意,这些形状在图像中的大小可能不同。有人知道做这件事的好方法吗?没有下载任何库(这是我现在的限制) 在检测到形状之后,我还需要记录哪个形状连接到哪个形状,以便以后可以重新绘制它们。我有一周的时间做这件事,所以非常感谢你的帮助 我用的是C#。你有没有看一下如何使用?它

我有一个关于图像处理的问题,使用C#

假设我有一些BMP格式的原理图,该图包含相互连接的组件形状

我编写了一个简单的程序来检测图中的正方形作为一个组件,并记录它的位置。然而,下一个层次是检测更复杂的形状,比如连接在一起的几个圆弧。请注意,这些形状在图像中的大小可能不同。有人知道做这件事的好方法吗?没有下载任何库(这是我现在的限制)

在检测到形状之后,我还需要记录哪个形状连接到哪个形状,以便以后可以重新绘制它们。我有一周的时间做这件事,所以非常感谢你的帮助


我用的是C#。

你有没有看一下如何使用?它是OpenCV的开源C#包装器。它还有一个你可能感兴趣的功能。

看看。我对他们方法的理解:

  • 检测边缘
  • 通过查找垂直边来检测角点
  • 通过查找角点组来检测多边形
  • 利用Hough变换检测圆

这是一个相当困难的研究问题。即使有像OpenCV这样强大的计算机视觉库,在一周内实现一个有效的解决方案也是一项艰巨的任务。

为了回答我以前的一篇帖子,我已经在两周内完成了我需要做的事情,效果很好。事实上,我最终对不同的形状使用了不同的算法。这些算法有点自创,但我想提到的一个好方法是,获取直方图,然后使用不同轴上的投影,这非常有帮助。

图像中的形状是否旋转?它们是可伸缩的吗?我建议您取消限制,看看OpenCV或其他类似的库。为了我的计算机科学学位,我参加了一门计算机视觉课程,即使在那门课之后,一个人也没有足够的知识来编写你所要求的代码。把算法留给科学/研究人员,专注于创建应用程序。你有一周的时间来做这件事吗?这是家庭作业吗?谢谢你的评论,我不使用EmguCV或OpenCV的原因是我需要下载他们的库,目前我只能这样做。我写了一个算法来检测图像中的正方形,并在一天时间内成功地找到了它,所以我想可能有人知道很多找到形状的好方法,可以帮我一把,因为我没有太多时间来做这件事。我还是个学生,形状可以旋转90度或45度,就是这样。它们可以在多个图像中有不同的大小,但在同一个图像中,它们的大小大致相同。谢谢mevatron,我在发布此问题之前确实看到了这一点,假设我想使用它,但我需要下载EmguCV库,对吗?这是我目前的限制,我不能使用他们的图书馆。是的,我知道这很糟糕,但我必须自己想出好的方法来找到这些形状。非常感谢你,米莎,我认为你给的纸与我想要的非常相似,只是我在图片中的形状更整洁,因为它们首先是机器绘图。我想我可以跳过平滑步骤,我不确定分割步骤做什么。我对寻找弧、线、箭头等形状更感兴趣。我在使用过滤器时有点犹豫,因为机器运行所有算法需要时间,而且我可能没有时间编写自己的Hough变换?但我会尝试用圆公式来求圆弧,看看。