Мне нужно прочитать самую высокую температуру на термографических c изображениях, как показано ниже:
IR_1544_INFRA.jpg
IR_1546_INFRA.jpg
IR_1560_INFRA.jpg
IR_1564_INFRA.jpg
Я использовал следующий код, это был лучший результат. Я также попробовал несколько других способов, таких как: размытие, серая шкала, бинаризация и другие, но все они потерпели неудачу.
import cv2
import pytesseract
pytesseract.pytesseract.tesseract_cmd = r"C:\Users\User\AppData\Local\Tesseract-OCR\tesseract.exe"
# Load image, grayscale, Otsu's threshold
entrada = cv2.imread('IR_1546_INFRA.jpg')
image = entrada[40:65, 277:319]
#image = cv2.imread('IR_1546_INFRA.jpg')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
thresh = 255 - cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU)[1]
# Blur and perform text extraction
thresh = cv2.GaussianBlur(thresh, (3,3), 0)
data = pytesseract.image_to_string(thresh, lang='eng', config='--psm 6')
print(data)
cv2.imshow('thresh', thresh)
cv2.waitKey()
На первом изображении я нашел это
На втором изображении я нашел this .
Расположение изображения всегда одинаково, то есть температура всегда в одном и том же месте, поэтому я обрезал изображение до выделить только номер. Я хотел бы (97,7 здесь , и 85,2 здесь ).
Мой код должен найти по этим изображениям, чтобы всегда определять эту температуру и генерировать список, указывающий по наибольшему к наименьшему.
Что вы указали для меня, чтобы улучшить уверенность pytesseract в случае этих изображений?
Примечание 1: Когда я анализирую все изображение (без обрезки), оно возвращает данные, которых даже нет.
Примечание 2. На некоторых изображениях, даже с двоичным числом, pytesseract (image_to_string) не возвращает никаких данных.
Спасибо всем за извинения за опечатки, писать по-английски sh для меня все еще сложно.