编辑(问题更新后): 有多种方法可以实现。我首先要测试的是这个:你的第一个二进制图像非常干净和清晰。不要使用降低字母质量的形态学操作,而是切换到过滤轮廓。使用 findContours 函数在图像中找到所有轮廓并存储它们的层次结构(即哪个轮廓位于哪个轮廓之内)。实际上,您只需要找到第一级和第二级的轮廓,即每个字母的外部和内部轮廓(零级轮廓是最外层的轮廓)。其他轮廓可以被丢弃。在属于第一级的轮廓中,您可以丢弃那些边界框太小而无法成为真正字母的轮廓。经过这两个丢弃过程,我预计剩下的大多数轮廓都是字母的一部分。在白色图像上绘制它们并运行 OCR。(如果您想要黑色背景上的白色字母,则需要反转轮廓中顶点的顺序)。