Cv2.imwrite не работает: ошибка: (-215: утверждение не выполнено)Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Cv2.imwrite не работает: ошибка: (-215: утверждение не выполнено)

Сообщение Anonymous »


из imutils.object_detection import non_max_suppression импортировать numpy как np импортировать питессеракт импортировать argparse импортировать cv2 pytesseract.pytesseract.tesseract_cmd = r"C:\tesseract.exe" время импорта импортировать cv2 импортировать ОС пытаться: os.mkdir('A:\\DATAset') кроме ОСОшибка: проходить # Записываем время time_start = время.время() # Начинаем захватывать канал cap = cv2.VideoCapture('A:\\DATAset\\video2.mp4') #Находим количество кадров video_length = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)) - 1 print ("Количество кадров: ", длина_видео) количество = 0 print ("Конвертирование видео..\n") # Начинаем конвертировать видео в то время как cap.isOpened(): # Извлекаем кадр для меня в диапазоне (300): ret, кадр = cap.read() # Запишите результаты обратно в место вывода. cv2.imwrite('A:\\DATAset/' + "img" + str(count) + ".jpg", кадр) счет = счет + 100 def decode_predictions (оценки, геометрия): # извлекаем количество строк и столбцов из тома результатов, затем # инициализируем наш набор прямоугольников ограничивающей рамки и соответствующие # оценок уверенности (numRows, numCols) = Scores.shape[2:4] прямые = [] конфиденциальность = [] # цикл по количеству строк для y в диапазоне (0, numRows): # извлекаем оценки (вероятности), а затем # геометрические данные, используемые для получения потенциальной ограничивающей рамки # координаты, окружающие текст ScosData = баллы[0, 0, y] xData0 = геометрия[0, 0, y] xData1 = геометрия[0, 1, y] xData2 = геометрия[0, 2, y] xData3 = геометрия[0, 3, y] angularsData = геометрия[0, 4, y] # цикл по количеству столбцов для x в диапазоне (0, numCols): # если наша оценка не имеет достаточной вероятности, # игнорируй это если ScoresData[x] < args["min_confidence"]: продолжать # вычисление коэффициента смещения в качестве результирующего объекта # карты будут в 4 раза меньше входного изображения (смещениеX, смещениеY) = (x * 4,0, y * 4,0) # извлекаем угол поворота для прогноза и # затем вычисляем грех и косинус угол = данные углов [x] соз = np.cos(угол) грех = np.sin(угол) # используем объем геометрии для получения ширины и высоты № ограничивающей рамки h = xData0[x] + xData2[x] w = xData1[x] + xData3[x] # вычисляем начальную и конечную координаты (x, y) # для ограничивающей рамки прогнозирования текста endX = int(offsetX + (cos * xData1[x]) + (sin * xData2[x])) endY = int(offsetY - (sin * xData1[x]) + (cos * xData2[x])) startX = int(endX - w) началоY = int(конецY - ч) # добавляем координаты ограничивающего прямоугольника и оценку вероятности # в наши соответствующие списки rects.append((startX, startY, endX, endY)) уверенности.append(scoresData[x]) # возвращаем кортеж ограничивающих рамок и связанных с ними доверительных отношений возврат (прямые, доверительные отношения) # создаем анализатор аргументов и анализируем аргументы ап = argparse.ArgumentParser() ap.add_argument("-i", "--image", type=str, help="путь к входному изображению") ap.add_argument("-east", "--east", type=str, help="путь к входному детектору текста EAST") ap.add_argument("-c", "--min-confidence", type=float, default=0.5, help="минимальная вероятность, необходимая для проверки региона") ap.add_argument("-w", "--width", type=int, default=320, help="ближайшее кратное 32 для измененной ширины") ap.add_argument("-e", "--height", type=int, default=320, help="ближайшее кратное 32 для измененной высоты") ap.add_argument("-p", "--padding", type=float, default=0.0, help="количество полей, добавляемых к каждой границе рентабельности инвестиций") args = vars(ap.parse_args()) # загружаем входное изображение и получаем размеры изображения image = cv2.imread('A:\\DATAset/' + "img" + ул(количество) + ".jpg") оригинал = изображение.копия() (origH, origW) = image.shape[:2] # установите новую ширину и высоту, а затем определите соотношение изменений # для ширины и высоты (newW, newH) = (args["ширина"], args["высота"]) rW = origW / float(newW) rH = origH / float(newH) # изменяем размер изображения и получаем новые размеры изображения изображение = cv2.resize(изображение, (newW, newH)) (В, Ш) = image.shape[:2] # определите два имени выходного слоя для модели детектора EAST, которая # нас интересует: первое — это выходные вероятности и # секунду можно использовать для получения координат ограничивающей рамки текста Имена слоев = [ "feature_fusion/Conv_7/Сигмовидная", "feature_fusion/concat_3"] # загружаем предварительно обученный детектор текста EAST print("[INFO] загружает детектор текста EAST...") net = cv2.dnn.readNet('frozen_east_text_detection.pb') # создаем блоб из изображения и затем выполняем прямой проход # модель для получения двух наборов выходных слоев blob = cv2.dnn.blobFromImage(изображение, 1.0, (W, H), (123,68, 116,78, 103,94), swapRB=Истина, обрезка=Ложь) net.setInput(блоб) (баллы, геометрия) = net.forward(layerNames) # декодируем прогнозы, затем применяем подавление немаксимумов к # подавляем слабые перекрывающиеся ограничивающие рамки (прямоугольники, доверительные отношения) = decode_predictions (оценки, геометрия) box = non_max_suppression(np.array(rects),probs=confidences) # инициализируем список результатов результаты = [] # цикл по ограничивающим рамкам для (startX, startY, endX, endY) в полях: # масштабируем координаты ограничивающего прямоугольника на основе соответствующих # коэффициенты startX = int(startX * rW) startY = int(startY * rH) endX = int(endX * rW) конецY = int(конецY * rH) # чтобы получить лучшее распознавание текста, мы потенциально можем # примените немного отступов вокруг ограничительной рамки — здесь мы # вычисляются дельты в направлениях x и y dX = int((endX - startX) * args["padding"]) dY = int((endY - startY) * args["padding"]) # применить отступы к каждой стороне ограничивающей рамки соответственно startX = макс(0, startX - dX) startY = max(0, startY - dY) endX = min(origW, endX + (dX * 2)) endY = min(origH, endY + (dY * 2)) # извлекаем фактическую дополненную рентабельность инвестиций roi = orig[startY:endY, startX:endX] # чтобы применить Tesseract v4 к тексту OCR, мы должны предоставить # (1) язык, (2) OEM-флаг 4, указывающий, что мы # хотим использовать модель нейронной сети LSTM для оптического распознавания символов и, наконец, # (3) значение OEM, в данном случае 7, что означает, что мы # рассматривать рентабельность инвестиций как одну строку текста config = ("-l eng --oem 1 --psm 7") текст = pytesseract.image_to_string(roi, config=config) # добавляем в список координаты ограничивающего прямоугольника и текст OCR # результатов results.append(((startX, startY, endX, endY), текст)) # сортируем координаты ограничивающей рамки результатов сверху вниз результаты = отсортировано (результаты, ключ = лямбда r: r[0][1]) # цикл по результатам for ((startX, startY, endX, endY), text) в результатах: # отображаем текст, распознанный Tesseract печать("ТЕКСТ OCR") печать("========") print("{}\n".format(текст)) # удаляем текст, отличный от ASCII, чтобы можно было нарисовать текст на изображении # используя OpenCV, затем нарисуйте текст и ограничивающую рамку вокруг # текстовая область входного изображения text = "".join([c if ord(c) < 128 else "" for c в тексте]).strip() вывод = orig.copy() cv2.rectangle(выход, (startX, startY), (endX, endY), (0, 0, 255), 2) cv2.putText(вывод, текст, (startX, startY - 20), cv2.FONT_HERSHEY_SIMPLEX, 1.2, (0, 0, 255), 3) # показываем выходное изображение cv2.imshow("Обнаружение текста", вывод) cv2.waitKey(0) # Если кадров больше не осталось if (count > (video_length - 1)): # Запишите время еще раз time_end = время.время() # Освободить канал крышка.релиз() # Печать статистики print ("Извлечение кадров завершено. Извлечено\n%d кадров" % count) print ("Преобразование заняло %d секунд." % (time_end - time_start)) перерыв это система обнаружения, я сделал все возможное, чтобы она работала, но она не работает это результат

PS A:\Codeing> & C:/Python/python.exe "a:/Codeing/test 2.py" Количество кадров: 639 Конвертирование видео..

Traceback (самый последний вызов — последний): Файл «a:\Codeing\test 2.py», строка 31, в cv2.imwrite('A:\DATAset/' + "img" + str(count) + ".jpg", кадр) cv2.error: OpenCV(4.8.1) D:\a\opencv-python\opencv-python\opencv\modules\imgcodecs\src\loadsave.cpp:787: ошибка: (-215: утверждение не выполнено) !_img.empty () в функции 'cv::imwrite'
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»