Впервые спрашивая, я не нашел никаких ответов на это после нескольких дней поиска. Кроме того, я абсолютно не программист, так что я мог упустить что-то очевидное.
Я запускаю код, который просматривает большую библиотеку изображений (около 2M) и извлекает из них информацию. Код работает нормально в течение нескольких итераций (20-10000ish), но затем программа просто останавливается без сообщений об ошибках.
Основной код завершает работу (завершается?) Большую часть времени при обнаружении краев OpenCV или скачках, ноне всегда. примерно в 10% случаев это происходит в каком-то другом месте кода.
Использование:
OpenCV 4.1.1 Python 3.7.1 Windows 10
Изображение в: https://www.dropbox.com/s/5lfzkw6sqmu73eb/Image_00_00_00_00.bmp?dl=0
Я пытался получить исключение из кода Opencv, но ничего не появляется. Последняя попытка в коде ниже.
Я пытался использовать модули трассировки и журнала, но я не могу заставить их сделать что-нибудь полезное.
import numpy as np
import cv2
import traceback
import sys
def cropping_points2(img):
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) # Gray image needed for edge detection
try:
edges = cv2.Canny(gray,20,70,apertureSize = 3)
except Exception as e:
print(traceback.format_exc())
print(sys.exc_info())
print(e, 'there was actually an exception!')
exit()
lines = []
try:
lines = cv2.HoughLines(edges,3,np.pi/180,65, 50, 10, min_theta = 1.4, max_theta = 1.75) # analyse image to find lines - thetha setting looks for horizontal
except Exception as e:
print(traceback.format_exc())
print(sys.exc_info())
print(e, 'there was actually an exception!')
exit()
if lines is None: # All black images return a NoneType image
print('no lines!') # Capture NoneType without crashiing
rect = []
has_lines = False
return rect , has_lines
has_lines = True
return lines[0][0], has_lines
if __name__ == "__main__":
img= cv2.imread('Image_00_00_00_00.bmp')
for index in range(10000):
rect, has_lines = cropping_points2(img)
print(rect)
print(index)
Я ожидаю, что программа подскажет мне, почему она перестает работать = |