在不更改图像结构的情况下调整大小

时间:2016-09-12 11:26:32

标签: python image-processing

我这里有一张图片(DMM_a01_s01_e01_sdepth.PNG,它基本上是人体深度图或其他东西,我真的不知道细节:():

DMM_a01_s01_e01_sdepth.PNG

它非常小(54x102)所以这是一个可视化: enter image description here

但是当我尝试使用我制作的这段代码将其调整为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()

,已调整大小的图像不再与原始图像相同:

enter image description here

如何调整大小并保持图像结构?请帮帮我,非常感谢:)

1 个答案:

答案 0 :(得分:0)

你所要求的是不可能的。调整图像大小是一种破坏性操作。您有54x102像素(5508像素的数据),并且您正试图将这些数据量合并到20x20图像中 - 这只有400像素!根据您使用的算法,您总会丢失一些细节,结构等等 - 在这种情况下scipy's。