我可以在 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 裁剪图像,但此错误不断出现 [重复]