Добавить изображение (nparray) в словарь

Я создал пустой словарь в 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

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

Fra93 23.11.2022 15:48
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
2
62
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я хотел бы добавить 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] ... 

Другие вопросы по теме