1. 程式人生 > 其它 >c# image轉換為bitmap_Python PIL.Image與numpy.array之間的相互轉換

c# image轉換為bitmap_Python PIL.Image與numpy.array之間的相互轉換

技術標籤: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')

Reference:

影象處理之PIL.Image與numpy.array之間的相互轉換_Python_歡迎光臨啊噗不是阿婆主的酒館-CSDN部落格​blog.csdn.net 4009a77aa75a81912a6b43ac2d0fcd43.png