我可以在 Open CV 中使用哪些函数来关闭图像中矩形的边框?

Posted

技术标签:

【中文标题】我可以在 Open CV 中使用哪些函数来关闭图像中矩形的边框?【英文标题】:What functions can I use in Open CV to close the border of a rectangle in an image? 【发布时间】:2016-06-02 05:03:26 【问题描述】:

我正在做一个检测车牌的项目。

问题是部分车牌损坏,如下图所示有缺角。这意味着当我尝试查找轮廓时,它不会检测到车牌,因为它不是一个完整的形状。

我尝试过使用腐蚀/膨胀,结果不是很好,它仍然没有连接线来缩小矩形的间隙。 cv::dilate(image, image, cv::Mat(),cv::Point(-1, -1), 0);cv::erosion(image, image, cv::Mat(),cv::Point(-1, -1), 0);

我可以使用哪些函数来完成车牌边框,以便将其检测为单个轮廓?

【问题讨论】:

我推荐你使用OpenCV的OCR模块来检测文本, 【参考方案1】:

我不知道你为什么想要边框,但我会暂时忽略这部分。

您的问题是您正在尝试使用像素操作。但是,像素操作是局部的,这里需要更大规模的操作:线检测。霍夫变换会很好地工作。然后你可以挑出两对形成水平和垂直边缘的线(投影意味着它们可能不是正交的,但它们可能接近正交。)

这些线将在矩形的确切角处交叉,而不是圆角,但这是一个小问题。

【讨论】:

【参考方案2】:

我猜,检测许可证背后的意图是获取显示其中字母数字字符的图像。所以可以尝试以下方法:

如果您可以检测到原始图像中的所有字母数字字符,则所有字符的边界框将用作车牌。如果您根据有效车牌中存在的字符和字符数保留一个标准,这将是正确的。由于有效的字符集总是以特定的方式严格存在(w.r.t 之间的空间),因此边界框将很容易计算。

【讨论】:

以上是关于我可以在 Open CV 中使用哪些函数来关闭图像中矩形的边框?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Pykinect 和 Open CV 保存 Kinect RGB 和深度图像

使用 open cv 和 java 在 Android 中单击时获取图像尺寸?

我正在使用此代码使用 open CV 裁剪图像,但此错误不断出现 [重复]

Python - 如何使用Open-cv或PIL将24位PNG图像转换为32位

cv2.imread()与PIL中Image.open()

如何从 getOrientation() 和 Open CV 代码返回方向角度?