Заполнить текст после обнаружения canny - PullRequest
0 голосов
/ 01 апреля 2020

Теперь у меня есть изображение, которое содержит некоторый текст и имеет цветной фон, я хочу извлечь его, используя tesseract , но сначала я хочу заменить цветной фон на белый и сделать сам текст черным повысить точность процесса обнаружения. я пытался использовать Canny Detection

import cv2
import numpy as np

image=cv2.imread('tt.png')
cv2.imshow('input image',image)
cv2.waitKey(0)


gray=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
edged=cv2.Canny(gray,30,200)
edged = cv2.bitwise_not(edged)
cv2.imshow('canny edges',edged)
cv2.waitKey(0)

, который отлично работал, чтобы заменить цветной фон белым, но сделал цвет текста белым с черными контурами (проверьте изображения ниже). так есть ли способ сделать весь текст черным? или есть другой способ сделать это?

до обнаружения Canny

после обнаружения Canny

Редактировать

the изображение может иметь смешанные цвета фона, например входное изображение

1 Ответ

0 голосов
/ 01 апреля 2020

Вы должны просто сделать это, используя THRESH_BINARY_INV, это код:

cv::namedWindow("Original_Image", cv::WINDOW_FREERATIO);
cv::namedWindow("Result", cv::WINDOW_FREERATIO);
cv::Mat originalImg = cv::imread("BCQqn.png");

cv::Mat gray;
cv::cvtColor(originalImg, gray, cv::COLOR_BGR2GRAY);
cv::threshold(gray, gray, 130, 255, cv::THRESH_BINARY_INV);

cv::imshow("Original_Image", originalImg);
cv::imshow("Result", gray);
cv::waitKey();

И это результат:

enter image description here

Вы можете играть с пороговым значением (130 в вышеприведенном примере).

Примечание: код на C ++, если вы используете Python, то вы можете go то же самое шаги, и это.

Удачи !!

...