2016-09-12 108 views
0

我在這裏有一個形象的結構(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

如何調整,仍然保持了圖像的結構?請幫助我,非常感謝:)

+0

當你說結構是否意味着保持圖像相同的形狀,這樣的人仍然看起來又高又瘦,或者你的意思是使它仍然具有與原始相同的細節水平? – Chachmu

+0

@Chachmu我認爲它應該與原始細節具有相同的細節水平,但說實話我並不是100%確定:(我認爲它應該看起來像儘可能多的原始圖像: –

+0

可能相關: http://stackoverflow.com/q/273946/1025391 – moooeeeep

回答

0

你所要求的是不可能的。調整圖像大小是一種破壞性操作。您有54x102像素(5508像素的數據),並且您試圖將該數量的數據放入20x20的圖像中 - 這只是400像素!根據你使用的算法,你總會失去一些細節,結構等 - 在這種情況下,scipy的。