2017-06-28 3 views
0

Bien que la formation PixelNet, je tor redimensionner l'image annotée (étiquette) qui a une valeur de pixel spécifique, avant le redimensionnement, les pixels de l'image a des valeurs SPECIF (objets annotés), np.unique(image) donne [ 0 7 15] Cependant quand je redimensionner l'image avec OpenCV pour l'adapter à ma définition de réseau, les valeurs de pixels vont des changements, oùOpenCV redimensionne changer la valeur de pixel

image = cv2.resize(image,(cnn_input_size, cnn_input_size),cv2.INTER_NEAREST) 

np.unique(bmask) donne [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17]

Thi s est un désastre pour la formation des images avec étiquette annotée car ces valeurs sont spécifiées pour les autres classes, je me demande si c'est le comportement attendu d'OpenCV lors du redimensionnement.

+0

qu'espériez-vous en conséquence? –

+0

@ A.Piro pour garder les mêmes valeurs de pixels [0,7,15] – Eliethesaiyan

Répondre

1

Utilisez

image = cv2.resize(image, (cnn_input_size, cnn_input_size), interpolation = cv2.INTER_NEAREST) 

ou

image = cv2.resize(image, (cnn_input_size, cnn_input_size), 0, 0, cv2.INTER_NEAREST) 

En ce moment, vous utilisez la valeur cv2.INTER_NEAREST pour les paramètres fx (échelle x), et en utilisant en fait la méthode d'interpolation par défaut qui est INTER_LINEAR.

+0

j'ai essayé les deux ... donner le même résultat .. le i a ajouté le zéro pour voir si elle ne fait pas une mise à l'échelle – Eliethesaiyan

+0

la ligne avec 'interpolation = cv2.INTER_NEAREST' devrait fonctionner correctement. pas sûr de l'autre en fait :) – Miki

+1

thx ... il fait l'astuce – Eliethesaiyan