首页 > 解决方案 > 如何改进质量差图像的文本检测?

问题描述

通常,阈值和文本检测对质量好的图像有好处,但坏的图像确实不好。我认为坏图像需要一些预处理,但我不知道如何。你有什么想法来改进质量差图像的文本检测吗?

import sys
import cv2
import math

img = cv2.imread(sys.argv[1])

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

_, bw = cv2.threshold(gray, 100, 255, cv2.THRESH_BINARY)

kernel = cv2.getStructuringElement(cv2.MORPH_DILATE, (5, 5))
grad = cv2.morphologyEx(bw, cv2.MORPH_GRADIENT, kernel)

contours, hierarchy = cv2.findContours(grad, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

for c in contours:
    peri = cv2.arcLength(c, True)
    approx = cv2.approxPolyDP(c, 0.01 * peri, True)
    x, y, w, h = cv2.boundingRect(approx)
    if math.fabs(cv2.contourArea(approx)) > 100:
        cv2.rectangle(img, (x, y), (x+w, y+h), (0, 255, 0), 2)

cv2.imshow('rects', img)
cv2.waitKey(0)

标签: pythonopencv

解决方案


推荐阅读