2017-02-07 2 views
0

Code très facile, je peux lire l'image de soit image1 comme png ou image2 comme jpg. Même image avec un format différent..png image ne peut pas faire binaire gris, tandis que l'image .jpg peut

Ensuite, filtrez la partie la plus sombre en noir, montrez la partie la plus claire en blanc.

#image = mpimg.imread('image1.png') 
image = mpimg.imread('image2.jpg') 
gray = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY) 
thresh = (180, 255) 
binary = np.zeros_like(gray) 
binary[(gray > thresh[0]) & (gray <= thresh[1])] = 1 

D'une certaine façon, quand je tracer le binaire de image1, il est tout noir, mais image2 regarde ce que je tends à faire. enter image description here

Répondre

3

Le problème est très probablement dû à matplotlib.image lire correctement le png alors que le jpg retombe à l'aide Pillow. L'image résultant de la lecture png sera un tableau de valeurs à virgule flottante avec une plage de 0,0 à 1,0 tandis que le jpg lu sera un tableau d'octets avec les valeurs 0..255. Par conséquent, le fonctionnement de votre clip se traduira par une image entièrement noire puisque tout est inférieur à 1.

Voir http://matplotlib.org/users/image_tutorial.html pour plus d'informations.

+1

Vous avez raison, je viens d'imprimer l'image [0,0 ,:], les png sont tous [0: 1], les jpg sont tous [0: 255]. – Patrick