Почему размер изображения меняется после сохранения?

#python #python-3.x #numpy

#python #python-3.x #numpy

Вопрос:

У меня проблема с размером размера изображения (M * N), когда я считываю изображение как np.array после применения метода алгоритма, размер его изменяется на другое значение.некоторое увеличение времени и некоторое уменьшение времени зависят от изображения.

 img = cv2.imread('baboon.jpg',1)  # read image (255*255)
na = np.array(img)  # convert it to array
x, y ,pp = img.shape[:3]  # size of 3d
blue = np.array(range(x*y), int).reshape((x, y))
blue[:,:] = na[:, :, 0]
en_split_block_8(red,31,1)  # function algorithm
  

Я использую этот код для сохранения изображения, и размер изменяется с (255 * 255) на (640 * 480)

 plt.imshow(blue,interpolation='nearest',cmap="gray")
plt.savefig('blue.jpg')#(640*480)
  

Я хочу, чтобы изображение сохраняло свой размер. (Я не меняю размер изображения, просто работаю со значениями).

исходное изображение

изображение после шифрования и сохранения

Ответ №1:

Это потому, что вы сохраняете изображение, с pyplot помощью которого изображение отображается в виде диаграммы. Вместо этого вы хотите сохранить blue изображение, используя cv2 with: cv2.imwrite('blue.jpg', blue) .

Остерегайтесь, что na = np.array(img) это избыточно, поскольку why img уже является ndarray .