我这里有一张图片(DMM_a01_s01_e01_sdepth.PNG,它基本上是人体深度图或其他东西,我真的不知道细节:():
但是当我尝试使用我制作的这段代码将其调整为20x20时:
from scipy import misc
import matplotlib.pyplot as plt
import matplotlib.cm as cm
import numpy as np
import math
import cv2
im = misc.imread('DMM_a01_s01_e01_sdepth.PNG')
def rgb2gray(rgb):
return np.dot(rgb[...,:3], [0.299, 0.587, 0.114])
if len(im.shape) ==3:
im = rgb2gray(im) # Convert RGB to grayscale
# Show image
plt.imshow(im, cmap = cm.Greys_r)
plt.show()
# Resize image
boxSize = 20
newImage= misc.imresize(im, (boxSize,boxSize), interp="bicubic")
plt.imshow(newImage, cmap = cm.Greys_r)
plt.show()
,已调整大小的图像不再与原始图像相同:
如何调整大小并保持图像结构?请帮帮我,非常感谢:)
答案 0 :(得分:0)
你所要求的是不可能的。调整图像大小是一种破坏性操作。您有54x102像素(5508像素的数据),并且您正试图将这些数据量合并到20x20图像中 - 这只有400像素!根据您使用的算法,您总会丢失一些细节,结构等等 - 在这种情况下scipy's。