1
我試圖如下Python的OpenCV的規格化具有零均值和單位方差
out_image = np.zeros((32,32),dtype=np.float32)
out_array = np.zeros((len(X),32,32), dtype=np.uint8)
for imageindex in range(0,len(X)):
img = X[imageindex].squeeze()
if proctype == 'MeanSubtraction':
out_image = img.astype(np.float32) - np.mean(img.astype(np.float32))
elif proctype == 'Normalization':
out_image = cv2.normalize(img.astype(np.float32), out_image, alpha=-0.5, beta=0.5,\
norm_type=cv2.NORM_MINMAX, dtype=cv2.CV_32F)
elif proctype == 'HistEqualization':
out_image = cv2.equalizeHist(img)
elif proctype == 'CLAHE':
clahe = cv2.createCLAHE(tileGridSize=(6,6),clipLimit = 20.0)
out_image = clahe.apply(img)
out_array[imageindex] = out_image.astype(np.uint8)
return out_array
然而正常化灰度圖像具有零均值和單位方差與cv2.normalize功能的數組,如果使用0和1(或0和255)用於歸一化函數的參數alpha和beta,它可以工作。但是如果我使用-0.5和+0.5,它會給我一個空的圖像(全零)
爲什麼會發生這種情況?
是的。我將out_array的dtype更改爲np.float32,現在可以工作了。謝謝 – Mechanic