Я создал пустой словарь в python. Я читаю изображения и обрабатываю их в цикле, и после обработки результатом является массив numpy. Я хотел бы добавить nparray во вновь созданный словарь и сохранить последовательное целое число в качестве ключа и массив в качестве значения. Как начать? В конце концов, я хотел бы добавить эти обработанные изображения в сетку изображений для отображения в моем блокноте jupyter и иметь код для этого, если они находятся в словаре.
Может быть, есть более простой способ сделать это?
stopsign_classifier = cv2.CascadeClassifier('haarcascade_stopsigns.xml')
img_dict = {}
folder = "D:\\temp\\"
for imagesdir in os.listdir(folder):
imgName = imagesdir
img = cv2.imread(folder + imgName)
signs = stopsign_classifier.detectMultiScale(img, scaleFactor= 1.01, minNeighbors = 9)
#check if stop signs exist in the photo
if signs is ():
print("No stop signs found")
# Draw a box around stop signs that were identified based on the return info from the stop sign classifier
else:
for (x, y, w, h) in signs:
cv2.rectangle(img, (x,y), (x+w,y+h), (255, 255 , 255), 8)
# code for adding img to the dictionary here
пожалуйста, просмотрите минимальный воспроизводимый пример . Я очень сомневаюсь, что весь материал OpenCV имеет отношение к вашему вопросу об основах программирования на Python (и не требуется для воспроизведения проблемы). -- далее, пожалуйста, просмотрите справочный центр . этот сайт - не то место, где можно попросить помощи в обучении программированию. рассмотрите codereview.stackexchange.com -- я вижу этот вопрос только потому, что вы пометили его как «OpenCV». это не. Я удалил тег.
Я хотел бы добавить nparray во вновь созданный словарь и сохранить последовательное целое число, так как ключ для меня звучит как список, где элементы уже проиндексированы с последовательными номерами.
Если вы хотите использовать словарь:
#init empty dictionary
img_dict = {}
img_n = 0
for imagesdir in os.listdir(folder):
# your code
# update dictionary
img_dict[str(img_n)] = img
img_n += 1
Затем вы получите доступ к любому элементу словаря, подобному этому
img_dict["3"] ...
Однако, если линейный инкрементный доступ — это именно то, что вам нужно, рассмотрите возможность использования списка:
#init empty list
img_list = []
for imagesdir in os.listdir(folder):
#your code
# update list
img_list.append(img)
Затем вы получите доступ к любому элементу списка, подобному этому
img_list[3] ...
Я хотел бы добавить nparray во вновь созданный словарь и сохранить последовательное целое число по мере того, как они нажимают, ммм, для меня это звучит как список.