Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.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

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# 在图像中查找子图像_C#_Image Processing - Fatal编程技术网

C# 在图像中查找子图像

C# 在图像中查找子图像,c#,image-processing,C#,Image Processing,我有一个相当简单的情况。我只是不知道要搜索什么特定的术语。 我有一个单一的图像,在这个图像中,我有几个遵循基本模式的其他图像。 它们是长方形,可能有地标图像作为基础。 一个重要的部分是,我需要检测旋转/缩放错误的子图像 基本上,我需要能够做的是将“名片”从一张图像分割成正确对齐的单张图像 由于我也在设计要扫描的卡片,我可以输入任何符号或东西,使检测更容易(正如我所说的地标)如果你的示例具有代表性(我出于某种原因怀疑),那么Hough transform就是你的朋友(谷歌it,有很多解释和代码)。

我有一个相当简单的情况。我只是不知道要搜索什么特定的术语。 我有一个单一的图像,在这个图像中,我有几个遵循基本模式的其他图像。 它们是长方形,可能有地标图像作为基础。 一个重要的部分是,我需要检测旋转/缩放错误的子图像

基本上,我需要能够做的是将“名片”从一张图像分割成正确对齐的单张图像


由于我也在设计要扫描的卡片,我可以输入任何符号或东西,使检测更容易(正如我所说的地标)

如果你的示例具有代表性(我出于某种原因怀疑),那么Hough transform就是你的朋友(谷歌it,有很多解释和代码)。有了它,你就能检测出矩形

C#中Hough变换的一些示例是和

如果你扫描了一些卡片,并且你对这个过程有一些控制,那么我建议你确保卡片之间没有重叠,并提供一个对比背景(与卡片非常不同)。然后,任何边缘检测都将使您与示例中绘制的内容足够接近,然后可以使用Hough变换

或者,您可以实现使用Hough变换直接检测矩形的纸张,而无需进行边缘检测


如果我不理解您的问题,或者您需要澄清,请进一步编辑您的问题并就此答案发表评论。

请尝试使用forge.NET(如果您使用的是C#)。它有DocumentSkewChecker,可以计算旋转图像的角度。

您可以尝试使用Forge.Net的ExtreatveTemplateMatching类。

它们是均匀的平铺还是尝试检测大小和纵横比不同的或多或少的矩形图像?请为您的问题添加一个示例图像!另外-我是否正确理解您事先知道这些子图像?如果没有,你对它们了解多少?我试图澄清我的问题,并添加了一个可怕的痛苦例子,请原谅这些蹩脚的艺术。我不知道子映像中到底是什么,因为它们会有一些用户修改,我必须实际地解析出来。但在我把它们分开并正确定位之后,这很容易。我一定运气不好,但我似乎找不到任何使用Hough转换的示例代码,我显然找到了wiki文章,但我似乎没有对它感到迷惑。我实际上无法控制扫描过程,除了物理卡的设计。如果这有帮助的话,请想象一下我想拍摄一张标准名片的扫描图像(我们可以假设它们都是矩形的,左上角有一个徽标),然后将它们分成方向正确的单张卡片。这些卡片将是白色的,背景为黑色,并且有黑色文本/符号。请参阅更新的答案。在黑白相间的情况下,几乎任何方法都可以。我在网上找不到关于霍夫变换的好解释;如果你能从互联网上了解到,那么一本图像处理书可能是你最好的选择。这不是一件小事,但也不复杂。