Не запускается код на Raspberry-Pi 4
Код должен запуститься на Raspberry-Pi 4,но ничего не выдает. даже никакой ошибки нет. Есть идеи, в чем проблема?
import cv2
import numpy as np
import time
from trecker import *
import pytesseract
import re
# Размеры области машины
WIDTH = 350
HEIGHT = 600
cap = cv2.VideoCapture("C:/Users/smero/Desktop/mirea/") # Открываем видеофайл для чтения
obj = cv2.createBackgroundSubtractorMOG2(history=150, varThreshold=170) # Инициализируем объект для вычитания фона
tracker = Tracker()
while True:
success, frame = cap.read() # Захватываем кадр из видеофайла
frame = cv2.resize(frame, (640, 480)) # Изменяем размер кадра
roi = frame[208:380, 71:546] # Обрезаем область, в которой находится машина
mask = obj.apply(roi) # Применяем метод вычитания фона
_, mask = cv2.threshold(mask, 254, 255, cv2.THRESH_BINARY) # Применяем пороговую фильтрацию
cnt, _ = cv2.findContours(mask, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) # Находим контуры объектов
points = []
for c in cnt:
area = cv2.contourArea(c)
if area > 1000 and area < 1300:
x, y, w, h = cv2.boundingRect(c)
points.append([x, y, w, h])
point = tracker.update(points) # Обновляем точки отслеживания
for i in point:
x, y, w, h, id = i
x_min, y_min = max(0, x), max(0, y) # Определяем границы только для области машины
x_max, y_max = min(x + w, roi.shape[1]), min(y + h, roi.shape[0])
roi_cropped = roi[y_min:y_max, x_min:x_max] # Выделяем область машины
time.sleep(0.3)
small_frame = cv2.imwrite("flip.png", roi_cropped)
img = cv2.imread('flip.png', cv2.IMREAD_COLOR)
# Загрузка изображения
image_path = "flip.png"
img = cv2.imread(image_path)
# Увеличение размера изображения для улучшения качества
resized_img = cv2.resize(img, None, fx=1.5, fy=1.5, interpolation=cv2.INTER_CUBIC)
# Увеличение резкости изображения
sharpened_img = cv2.filter2D(resized_img, -1, np.array([[-1, -1, -1], [-1, 9, -1], [-1, -1, -1]]))
# Преобразование в серый цвет
gray = cv2.cvtColor(sharpened_img, cv2.COLOR_BGR2GRAY)
# Применение порогового фильтра для улучшения четкости текста
_, threshold_img = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY | cv2.THRESH_OTSU)
# Применение операции расширения для увеличения жирности текста
kernel = np.ones((2, 1), np.uint8)
dilated_img = cv2.dilate(threshold_img, kernel, iterations=1)
cv2.imshow('4', dilated_img)
# Распознавание текста на улучшенном изображении
custom_config = r'--oem 3 --psm 6' # Параметры конфигурации для улучшения распознавания текста
text = pytesseract.image_to_string(dilated_img, config=custom_config, lang='rus')
characters_to_remove = ", | $ @ ^ = [ ] ' " " ; : \ / { } . “ < > "
for char in characters_to_remove:
text = text.replace(char, "")
text1 = text.upper()
text1 = text1.replace('\n', '').replace('\x0c', '')
text1 = re.sub(r"\s+", "", text1)
if len(text1) >= 8:
print('\033[32m {}'.format(len(text1)))
# проверка с bd.txt'
file_path = 'bd.txt' # замените на актуальный путь к файлу
text_found = False
with open(file_path, 'r') as file:
for line in file:
if text1 in line:
text_found = True
break
if text_found:
print('\033[1;31;47m {}'.format(text1) + ' найден в файле' f"{'':*>190}\n")
else:
print(f'Текст {text1} не найден в файле.\n')
if len(text1) >= 5:
print('\033[32m {}'.format(len(text1)))
print('\033[34m {}'.format(text1))
cv2.imshow("Cropped ROI", roi_cropped) # Выводим выделенную область на отдельное окно
cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 0, 255), 2) # Рисуем прямоугольник вокруг машины
# cv2.putText(frame, str(id), (x, y - 1), cv2.FONT_HERSHEY_COMPLEX, 1, (255, 0, 0), 2) # Выводим ID машины на кадр
cv2.imshow("FRAME", frame) # Выводим кадр с обозначенными машинами
if cv2.waitKey(32) & 0xFF == 27: # Ожидание нажатия клавиши ESC
break
cap.release()
cv2.destroyAllWindows()