Помогите исправить ошибку python

Я новичок в программировании и использовал чат гпт для написания программы. Суть программы заключается в поиске смайликов ? на экране и выводе их количества.но каждый раз после запуска возникают новые проблемы, в этот раз возникла ошибка

Exception has occurred: error OpenCV(4.9.0) D:\a\opencv-python\opencv-python\opencv\modules\imgproc\src\color.cpp:196: error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor' File "F:\import numpy as np.ini", line 12, in process_frame template_gray = cv2.cvtColor(template, cv2.COLOR_BGR2GRAY) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "F:\import numpy as np.ini", line 30, in frame = process_frame() cv2.error: OpenCV(4.9.0) D:\a\opencv-python\opencv-python\opencv\modules\imgproc\src\color.cpp:196: error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'

вот сам код:

import pyautogui
import cv2
import imutils

# Функция для обработки скриншота и поиска смайликов
def process_frame():
    frame = np.array(pyautogui.screenshot())

    # Загружаем шаблон смайлика
    template = cv2.imread('cat_emoji.png')
    template_gray = cv2.cvtColor(template, cv2.COLOR_BGR2GRAY)

    # Находим смайлики ? на скриншоте
    gray_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    res = cv2.matchTemplate(gray_frame, template_gray, cv2.TM_CCOEFF_NORMED)
    threshold = 0.8
    loc = np.where(res >= threshold)

    # Рисуем прямоугольники вокруг найденных смайликов
    for pt in zip(*loc[::-1]):
        cv2.rectangle(frame, pt, (pt[0] + template.shape[1], pt[1] + template.shape[0]), (0, 0, 255), 2)

    cv2.putText(frame, f'Количество смайликов ?: {len(loc[0])}', (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 0, 255), 2)

    return frame

# Основной цикл программы
while True:
    frame = process_frame()

    # Отображение обработанного скриншота
    cv2.namedWindow('Processed Frame', cv2.WINDOW_NORMAL)
    cv2.resizeWindow('Processed Frame', 800, 600)  # Изменение размера окна
    cv2.imshow('Processed Frame', frame)

    if cv2.waitKey(1) & 0xFF == ord('q'):
        cv2.destroyAllWindows()
        break

Очень прошу помочь, заранее спасибо


Ответы (0 шт):