Заполнение 3-канального изображения нулями

#python #numpy

#python #numpy

Вопрос:

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

изображения с предопределенным количеством нулей, чтобы все папки были

иметь одинаковое количество изображений. каждая форма изображения равна (127,227,3) ,

  for file in allfiles:
            files.append(file) if ('.jpg' in file) else None
            samples = np.empty((127, 227,3))

    for file in files:
            img = cv2.imread(os.path.join(pth_upd,file))
            img=img.astype(np.float32)
            samples = np.append(samples, img, axis=0)
    print(samples.shape)

   pad_size=half_len-len(samples)       

   samples = np.pad(samples,(( pad_size,0),(0,0),(0,0)),mode='constant', constant_values=0) 

   f_name=format(folder)

  full_path ='C:/Users/sarmad/Documents/dev_test_of'   f_name
  

Я получаю эту ошибку :

 ValueError Traceback (most recent call last)
  <ipython-input-14-da54323f81ce> in <module>
 58     pad_size=half_len-len(samples)
 59 
  samples = np.pad(samples,(( pad_size,0),(0,0), 
   (0,0)),mode='constant', constant_values=0)
   61 
   62     f_name=format(folder)

 ValueError: ((-44812, 0), (0, 0), (0, 0)) cannot contain negative values.
  

Комментарии:

1. не могли бы вы рассказать нам, что такое half_len? потому что len (samples), вероятно, является очень большим числом. какова ваша цель при добавлении к образцу? поскольку форма меняется, я должен спросить.

2. half_len — это размер самой большой папки, например 500-(current_number_of_images_in_folder), мне нужно создать pkls, чтобы использовать их в качестве пакетов для keras

3. Ваш pad_size становится отрицательным, поэтому проверьте, не становится ли len (samples) слишком большим.

4. @N.zay не могли бы вы попробовать ‘pad_size=(half_len 1) * 127 — len (образцы)’. потому что, как я понимаю, ‘half_len’ — это количество файлов. но ваше первое измерение образца увеличивается на 127 с каждым добавлением, что дает длину массива. и ‘ 1’ для самого большого каталога. поскольку длина первых нулей в образцах равна 127. но вы могли делать что-то неправильно. какой формы «образцов» вы пытаетесь достичь.