在試圖在ML中建立一個字母分類器時,這是一個使用PIL從檔案夾中的影像創建影像資料和標簽的代碼。
def create_dataset_PIL(img_folder)。
img_data_array=[] 。
class_name=[]
for dir1 in os.listdir(img_folder)。
print(dir1)
for file in os.listdir(os.path.join(img_folder, dir1)) 。
image_path= os.path.join(img_folder, dir1, file)
image= np.array(Image.open(image_path))
image= np.resize(image,(IMG_HEIGHT,IMG_WIDTH,3)
image = image.astype('float32')
image /= 255 255
img_data_array.append(image)
class_name.append(dir1)
return img_data_array , class_name
每張圖片在資料集中已經是32 X 32像素,我正在將其調整為32 X 32 X 3尺寸的串列。
但我不明白,當我只需要32 X 32像素時,這第三維是什么?
我偶然發現Numpy Resize/Rescale Image,在那里我知道這可能是插值引數。我還從YouTube上了解到,在調整影像大小時,需要進行插值。但我不知道該如何處理這些額外的資料?我的神經網路的輸入層的大小現在應該是32 X 32 X 3而不是32 X 32?
uj5u.com熱心網友回復:
3代表RGB(RED-GREEN-BLUE)值。 影像的每個像素由3個像素代表,而不是一個。 在黑色&白色影像中,每個像素將由[像素]表示。 在RGB影像中,每個像素將由[pixel(R),pixel(G),pixel(B)]表示
。事實上,影像的每個像素有3個RGB值。它們的范圍在0到255之間,代表紅、綠、藍的強度。一個較低的值代表較高的強度,一個較高的值代表較低的強度。例如,一個像素可以被表示為這三個值的串列[ 78, 136, 60]。黑色可以表示為[0, 0, 0].
。是的:你的輸入層應該與這個32X32X3匹配。
uj5u.com熱心網友回復:
在數字影像中的第3'rd維度包含了影像中(x,y)坐標上的像素的顏色資訊,也被稱為顏色通道。
最常見的通道型別
最常見的通道型別
例如:image_shape: [32,32,3]/li>
如果你的ML模型不需要顏色特征,你可以使用Scikit-image通過rgb2gray來轉換為灰度
你可以了解更多關于NumPy中影像的使用這里
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/320325.html
標籤:
上一篇:如何使用win32應用程式檢查你的藍牙收音機是否具有藍牙智能(ble)功能?
下一篇:重定向到上一頁而不丟失原始資料
