Найти контуры по краям и метке выходного оборудования - PullRequest
0 голосов
/ 19 апреля 2020

Я пытаюсь закодировать инструмент, который автоматически идентифицирует и сортирует изображения в алфавитном порядке по номеру оборудования (19-V1083AI). Я использовал библиотеку pytesseract для преобразования изображения в строку после того, как контуры этикетки оборудования были определены. Хотя код работает правильно, он никогда не выводит номер оборудования. Я впервые использую библиотеку pytesseract и функцию goodFeaturesToTrack. Любая помощь будет принята с благодарностью!

Исходное изображение: Original Image

import numpy as np
import cv2
import imutils #resizeimage
import pytesseract # convert img to string
from matplotlib import pyplot as plt
pytesseract.pytesseract.tesseract_cmd = r"C:\Program Files\Tesseract-OCR\tesseract.exe"

# Read the image file
image = cv2.imread('Car Images/s3.JPG')

# Resize the image - change width to 500
image = imutils.resize(image, width=500)


# Display the original image
cv2.imshow("Original Image", image)
cv2.waitKey(0)

# RGB to Gray scale conversion
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
cv2.imshow("1 - Grayscale Conversion", gray)
cv2.waitKey(0)

# Noise removal with iterative bilateral filter(removes noise while preserving edges)
gray = cv2.bilateralFilter(gray, 11, 17, 17)
cv2.imshow("2 - Bilateral Filter", gray)
cv2.waitKey(0)


corners = cv2.goodFeaturesToTrack(gray,60,0.001,10)

corners = np.int0(corners)

for i in corners:
    x,y = i.ravel()
    cv2.circle(image,(x,y),0,255,-1)
    coord = np.where(np.all(image == (255, 0, 0),axis=-1))
plt.imshow(image)

# Use tesseract to covert image into string
text = pytesseract.image_to_string(image, lang='eng')
print("Equipment Number is:", text)


plt.show()

Вывод: Output

...