c# image轉換為bitmap_Python PIL.Image與numpy.array之間的相互轉換
阿新 • • 發佈:2021-01-07
技術標籤:c# image轉換為bitmap
前言
有時我們使用PIL庫讀入影象資料後需要檢視影象資料的維度,比如shape,或者有時我們需要對影象資料進行numpy型別的處理,所以涉及到相互轉化,這裡簡單記錄一下。
方法
當使用PIL.Image.open()開啟圖片後,如果要使用img.shape函式,需要先將image形式轉換成array陣列。
import numpy as np from PIL import Image im = Image.open("test.png") #讀入圖片資料 img = numpy.array(im) #轉換為numpy
此時例如要處理加入椒鹽噪聲,這時使用numpy陣列進行處理:
for k in range(n): i = int(numpy.random.random() * img.shape[1]); j = int(numpy.random.random() * img.shape[0]); if img.ndim == 2: img[j,i] = 255 elif img.ndim == 3: img[j,i,0]= 255 img[j,i,1]= 255 img[j,i,2]= 255
最後將array轉化為image形式
img = Image.fromarray(img.astype('uint8')).convert('RGB')