Ошибка при проверке плоскости контуров: Assertion failed npoints >= 0 && (depth == CV_32F || depth == CV_32S) in function 'cv::contourArea'
Вот полный текст ошибки:
cv2.error: OpenCV(4.5.3) C:\Users\runneradmin\AppData\Local\Temp\pip-req-build-sn_xpupm\opencv\modules\imgproc\src\shapedescr.cpp:315: error: (-215:Assertion failed) npoints >= 0 && (depth == CV_32F || depth == CV_32S) in function 'cv::contourArea'
Вот мой код:
# OpenCV #
import cv2
import numpy
# Data Load
image = cv2.imread(r"D:\Vladyslav Kryvoruchko\HW - Home Work Maker\hw\scaner\shaded.png")
# Black Like Image
black = numpy.zeros_like(image)
# Grayscale
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
ret2, th2 = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)
# I copied this from stackoverflow
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (5, 5))
threshed = cv2.morphologyEx(th2, cv2.MORPH_CLOSE, kernel)
# Contuors
imgContours, Contours = cv2.findContours(threshed, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)
for contour in Contours:
# Checking contors area
if cv2.contourArea(contour) > 200:
# Coordinates Of Symbols
[X, Y, W, H] = cv2.boundingRect(contour)
# Bounding Boxes
cv2.rectangle(image, (X, Y), (X + W, Y + H), (0,0,255), 2)
cv2.rectangle(black, (X, Y), (X + W, Y + H), (0,255,0), 2)
cv2.imshow('contour', image)
cv2.imshow('black', black)
Как найти символы на изображении я нашел на Stackoverflow. Но ответ там был с багами, я промучился с этим 2 часа. Что я делаю не так?
Помогите, пожалуйста!
PS: Если я делаю совсем что-то не то, то перепишите мой код пожалуйста! Моя цель: найти символы на изображении, и потом сохранить их в отдельные файлы для дальнейшей обработки.