相关疑难解决方法(0)

提取文本OpenCV

我试图在图像中找到文本的边界框,目前正在使用这种方法:

// calculate the local variances of the grayscale image
Mat t_mean, t_mean_2;
Mat grayF;
outImg_gray.convertTo(grayF, CV_32F);
int winSize = 35;
blur(grayF, t_mean, cv::Size(winSize,winSize));
blur(grayF.mul(grayF), t_mean_2, cv::Size(winSize,winSize));
Mat varMat = t_mean_2 - t_mean.mul(t_mean);
varMat.convertTo(varMat, CV_8U);

// threshold the high variance regions
Mat varMatRegions = varMat > 100;
Run Code Online (Sandbox Code Playgroud)

给出这样的图像时:

在此输入图像描述

然后,当我显示varMatRegions我得到这个图像:

在此输入图像描述

正如你所看到的那样,它将左侧的文本块与卡片的标题结合起来,对于大多数卡片而言,这种方法效果很好,但在较繁忙的卡片上它可能会导致问题.

这些轮廓连接不好的原因是它使得轮廓的边界框几乎占据了整个卡片.

任何人都可以建议一种不同的方式来查找文本以确保正确检测文本吗?

200分,谁能在这两张卡上方找到文字.

在此输入图像描述 在此输入图像描述

c++ text opencv image-processing bounding-box

141
推荐指数
6
解决办法
10万
查看次数

如何从图像中检测文本区域?

我想从图像中检测文本区域作为tesseract OCR引擎的预处理步骤,当输入只是文本时引擎运行良好,但当输入图像包含非文本内容时它会下降,所以我想只检测图像中的文本内容,任何如何做到这一点的想法会有所帮助,谢谢.

c++ tesseract text-extraction image-processing

9
推荐指数
1
解决办法
2万
查看次数

如何旋转图像以对齐文本以进行提取?

我正在使用 pytessearct 从图像中提取文本。但它不适用于倾斜的图像。考虑下面给出的图像:

图片

这是提取文本的代码,它在不倾斜的图像上工作正常。

img = cv2.imread(<path_to_image>)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
blur = cv2.GaussianBlur(gray, (5,5),0)
ret3, thresh = cv2.threshold(blur,0,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU)
def findSignificantContours (img, edgeImg):
    contours, heirarchy = cv2.findContours(edgeImg, cv2.RETR_TREE, cv2.CHAIN_APPROX_NONE)
    # Find level 1 contours
    level1 = []
    for i, tupl in enumerate(heirarchy[0]):
        # Each array is in format (Next, Prev, First child, Parent)
        # Filter the ones without parent
        if tupl[3] == -1:
            tupl = np.insert(tupl, 0, [i])
            level1.append(tupl)
    significant = []
    tooSmall = edgeImg.size * 5 / 100 # …
Run Code Online (Sandbox Code Playgroud)

python opencv tesseract machine-learning computer-vision

5
推荐指数
1
解决办法
358
查看次数