这是我的问题。我有一些简单的图片,在绿色的圆圈里有一些大的黑色数字。问题是它们可以随机旋转。到目前为止,我所做的是识别绿色的圆圈,然后将它们从图像中剪除,这样我就得到了数字。为了把它们弄直,我想用以下的方式构造一个旋转的圆角:
cv::findContours
找到这个数字的所有轮廓。cv::minAreaRect
构造出包含数字的最佳拟合旋转矩形。所有操作都很好,除了数字4
,它的旋转矩形与数字不对齐,但略有倾斜,如下面的图像所示:
我也试过用一个合适的椭圆,但那也是倾斜的。我能想到的唯一解决方案是使用模板匹配,提供自己旋转的模板。
发布于 2019-05-24 09:56:52
如果数字的字体是一致的,如果你可以把圆圈隔离开来,如果它们是(或者可以被做成)一个均匀的大小,那么你就可以完全绕开Tesseract,而代价是为各种旋转中的所有数字构造模板。
假设在+/- 2°范围内应用模板会给出一个不错的信号,那就是be (360/5)*10 = 720个模板来覆盖0-9。将应用这些模板的成本与Tesseract调用的成本进行基准测试会很有趣。
https://stackoverflow.com/questions/56292845
复制