после cv.normalize () пиксели результата равны 0, почему? - PullRequest
0 голосов
/ 22 мая 2019

Я хочу нормализовать данные изображения, используя функцию OpenCV cv.normalize(), но после cv.normalize() результат всегда равен 0, что должно быть значением с плавающей запятой от 0 до 1.

Я пыталсявсе параметры до cv.normalize(), но это не помогло.

import tensorflow as tf
from PIL import Image
import numpy as np
import time
import cv2

im = Image.open("./dataset/0001.jpg")

new_img2 = im.resize((64, 64), Image.BILINEAR)

mat = np.asarray(new_img2.convert('RGB'))  
mat = mat.reshape(1, 64, 64, 3)
print(mat)  

cv2.normalize(mat, mat, 1, 0,  cv2.NORM_MINMAX)
print(mat)


[[[[ 46  46  46]
   [ 50  50  50]
   [ 52  52  52]
   ...
   [ 14  14  14]
   [ 13  13  13]
   [ 13  13  13]]
   ...

    -------------------------------

[[[[0 0 0]
   [0 0 0]
   [0 0 0]
   ...
   [0 0 0]
   [0 0 0]
   [0 0 0]]
   ...

Ответы [ 2 ]

0 голосов
/ 24 мая 2019

Убедитесь, что тип выходных данных установлен как float

mat = cv2.normalize(mat, mat, 0, 1, cv2.NORM_MINMAX, cv2.CV_32F)
0 голосов
/ 22 мая 2019

Вы можете использовать NumPy, не нужно использовать нормализовать:

res = np.float32(mat)

res /= 255
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...