Как изменить размер изображения с отрицательными числами, используя scipy.mis c .resize? - PullRequest
2 голосов
/ 28 марта 2020

Я хочу изменить размер поверхности обычного «изображения» (H * W * 3). Проблема в том, что в массиве есть отрицательные числа. Как я могу использовать scipy.misc.resize или cv2.resize, чтобы изменить его размер?

1 Ответ

0 голосов
/ 28 марта 2020

cv2.resize поддерживает отрицательные числа.

Пример:

import numpy as np
import cv2

a = np.full((5, 5, 3), -5, float))
b = cv2.resize(a, (10, 10))
print(b)

Результат:

[[[-5. -5. -5.]  
  [-5. -5. -5.]  
  [-5. -5. -5.]...

Возможно, у вас возникла проблема с использованием cv2.resize из-за типа вашего изображения is int32.
cv2.resize не поддерживает тип int32.

Следующий код вызывает исключение:

a = np.full((5, 5, 3), -5, np.int32)
b = cv2.resize(a, (10, 10))

Вы можете преобразовать изображение в тип np.int16 до изменения размера:

a = np.full((5, 5, 3), -5, np.int32)
b = cv2.resize(a.astype(np.int16), (10, 10))

Нет scipy.misc.resize, есть scipy.mis c .imresize , но метод устарел:

imresize устарела! imresize устарела в SciPy 1.0.0 и будет удалена в 1.3.0. Вместо этого используйте Pillow

Похоже, что есть некоторый контроль над диапазоном, используя аргумент mode.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...