我正在一个项目中工作,需要对标签上的文字进行OCR。我的任务是将图像校正,使其可以被tesseract识别。
我一直在使用这种方法,它将图片转换为灰度并进行阈值处理,获取黑色像素的坐标,围绕其绘制一个最小矩形,并通过该矩形的倾斜角度来校正图像的倾斜。这在
上有效,但对于有背景的图片(如所呈现的图片)则无效。在那里,它计算出了0.0的倾斜角度,没有旋转图像。(期望结果:17°)
我怀疑这是因为背景中有黑色像素。由于它们,minAreaRect会围绕整个图片,从而导致倾斜角度为0。
我尝试过背景去除,但找不到足够好的方法,只留下带有文本的标签。
我尝试了另一种方法,即通过k-means聚类来聚集像素。但即使手动选择一个好的k值,包含文本的聚类仍然包含部分背景。 更不用说我还需要另一种方法,遍历所有聚类并使用某种启发式方法来确定哪个聚类是文本,哪个是背景,这将耗费大量运行时间。
如何最好地校正具有背景的图像?
![blindtext images](https://istack.dev59.com/B6uKh.webp)
我尝试过背景去除,但找不到足够好的方法,只留下带有文本的标签。
我尝试了另一种方法,即通过k-means聚类来聚集像素。但即使手动选择一个好的k值,包含文本的聚类仍然包含部分背景。 更不用说我还需要另一种方法,遍历所有聚类并使用某种启发式方法来确定哪个聚类是文本,哪个是背景,这将耗费大量运行时间。
如何最好地校正具有背景的图像?