2016-11-23 1 views
1

J'utilise la fonction suivante pour redimensionner un ensemble d'images ayant la forme (samples, 1, image_row, image_column). J'utilise la bibliothèque skimage.Perte d'informations après le redimensionnement de l'image à l'aide de la bibliothèque skimage python

from skimage import io 
from skimage.transform import resize 
def preprocess(imgs): 
imgs_p = np.ndarray((imgs.shape[0], imgs.shape[1], img_rows, img_cols), dtype=np.uint8) 
for i in range(imgs.shape[0]): 
    imgs_p[i, 0] = resize(imgs[i, 0], (img_rows, img_cols)) 
return imgs_p 

Cependant, j'ai remarqué que les images redimensionnées deviennent de type 0-1. Voici quelques résultats de test. Nous pouvons voir que l'image redimensionnée ne contient que la valeur 0-1. Je ne suis pas sûr de ce qui ne va pas avec ma fonction de redimensionnement.

print(image[0,0].shape) 

    (420, 580) 
    print(image[0,0]) 
[[ 0 155 152 ..., 87 91 90] 
    [ 0 255 255 ..., 140 141 141] 
    [ 0 255 255 ..., 157 156 158] 
    ..., 
    [ 0 77 63 ..., 137 133 122] 
    [ 0 77 63 ..., 139 136 127] 
    [ 0 77 64 ..., 149 144 137]] 

    print(resized_image[0,0].shape) 
    (96, 128) 
    print(resized_image[0,0]) 
    [[1 1 0 ..., 0 0 0] 
    [0 0 0 ..., 0 0 0] 
    [0 0 0 ..., 0 0 0] 
    ..., 
    [0 0 0 ..., 0 0 0] 
    [0 0 0 ..., 0 0 0] 
    [0 0 0 ..., 0 0 0]] 

Répondre

0

Vos images seront converties en points flottants lors du redimensionnement. Il y a un drapeau booléen optionnel que transform.resize() prend: preserve_range. De l'source code

preserve_range: bool, en option. Que ce soit pour conserver la plage de valeurs d'origine Sinon, l'image d'entrée est convertie selon les conventions de img_as_float.

Réglez-le sur True et il devrait résoudre votre problème.

0

La sortie de resize a une DTYPE de flotteur, il est donc dans la gamme 0-1. Vous pouvez convertir votre image à uint8 gamme avec:

from skimage import img_as_ubyte 
image = img_as_ubyte(image) 

S'il vous plaît voir le user guide pour une description complète des types de données et leurs gammes.