python image.open 参数作用,python基础(python Image Library)
PIL基礎介紹
python Image Library也就是PIL庫,是python用于圖像處理的庫,其中包含了常見基礎的圖像處理算法。
PIL官網介紹
PIL中有很多類,核心類型是Image,其中打開圖片的函數就在Image中。
from PIL import Image
img = Image.open('test.jpg')
print img.format, img.size, img.mode
#JPEG (333, 351) RGB
format 屬性指定了圖像文件的格式,如果圖像不是從文件中加載的則為None。
size 屬性是一個2個元素的元組,包含圖像寬度和高度(像素)。
mode 屬性定義了像素格式,常用的像素格式為:“L” (luminance) - 灰度圖, “RGB” , “CMYK”。
1.PIL基礎操作
讀寫圖片
img = Image.open('test.jpg')
img.thumbnail((50,50))
img.save('test2.png')
PIL只有在需要的時候才加載像素數據。當你打開一個文件時,PIL只是讀取文件頭獲得文件格式、圖像模式、圖像大小等屬性,而像素數據只有在需要的時候才會加載。img中并沒有保存所有的像素信息。上面的程序并保存的其實就是縮略圖。
2.圖片剪切、粘貼、合并
圖像剪切、旋轉、粘貼
img = Image.open('test.jpg')
box = (100,100,200,200)
region = img.crop(box)
region = region.transpose(Image.ROTATE_180)
img.paste(region, box)
坐標原點位于左上角。上面的例子提取的子區域包含100x100個像素。將該部分進行旋轉,并粘貼會原本位置。
1.分割:split() 函數創建一個圖像集合,每個圖像包含一個通道。
2.合并:merge()函數接受一個顏色模式和一個圖像元組,然后將它們合并為一個新的圖像。接下來的例子交換了一個RGB圖像的三個通道。
r, g, b = im.split()
im = Image.merge("RGB", (b, g, r));
3.縮放、旋轉
out = im.resize((128, 128),Image.BILINEAR)
out = im.resize((128, 128))
out = im.rotate(45)
rotate和transpose結果、性能沒有什么區別,但又更通用的圖像變換函數為transform()。
4.統計直方圖
Image類實例的histogram()方法能夠對直方圖數據進行統計,并將結果做為一個列表(list)返回。
rot_img.histogram()
histogram()直方圖數據進行統計,并將結果做為一個列表(list)返回
5.顏色模式轉換
im = Image.open("lena.ppm").convert("L")
1 (1-bit 像素, 黑白, 一個像素存儲為一個字節)
L (8-bit 像素, 黑白)
P (8-bit 像素, 使用調色板映射到其他任一模式)
RGB (3x8-bit 像素, 真彩色)
RGBA (4x8-bit 像素, 帶透明掩模的真彩色)
CMYK (4x8-bit 像素, colour separation)
YCbCr (3x8-bit 像素, colour video format)
I (32-bit integer 像素)
F (32-bit floating point 像素)
RGBX (true colour with padding)
RGBa (true colour with premultiplied alpha)
PIL庫支持從其他模式轉為“L”或“RGB”模式,其他模式之間轉換,則需要使用一個中間圖像,通常是“RGB”圖像。
6.圖像增強
增強
ImageEnhance模塊
這個模塊提供了一個常用的圖像增強工具箱。可以用來進行色彩增強、亮度增強、對比度增強、圖像尖銳化等等增強操作。所有操作都有相同形式的接口——通過相應類的enhance方法實現:色彩增強通過Color類的enhance方法實現;亮度增強通過Brightness類的enhance方法實現;對比度增強通過Contrast類的enhance方法實現;尖銳化通過Sharpness類的enhance方法實現。所有的操作都需要向類的構造函數傳遞一個Image對象作為參數,這個參數定義了增強作用的對象。同時所有的操作都返回一個新的Image對象。如果傳給enhance方法的參數是1.0,則不對原圖像做任何改變,直接返回原圖像的一個拷貝。
該模塊只有Color、Contrast、Sharpness、Brightness四個類;并且每個類都只有兩個函數init和enhance函數,并且這四個類的使用方式和成員函數的使用方式也都是一樣的(只需要一個factor因子)。
from PIL import Image, ImageEnhance
img = Image.open("test.jpg")
# 增強亮度
enhanceImg = ImageEnhance.Brightness(img)
# 圖片尖銳化
enhanceImg = ImageEnhance.Sharpness(img)
# 對比度增強
enhanceImg = ImageEnhance.Contrast(img)
# 色彩增強
enhanceImg = ImageEnhance.Color(img)
enhanceImg.enhance(2.0).show()
通過調用ImageEnhance模塊中的不同類,使用enhance方法,可以得到增強后的圖片。
過濾器
ImageFilter是PIL的濾鏡模塊,當前版本支持10種加強濾鏡,通過這些預定義的濾鏡,可以方便的對圖片進行一些過濾操作,從而去掉圖片中的噪音(部分的消除),這樣可以降低將來處理的復雜度(如模式識別等)
濾鏡名稱
含義
ImageFilter.BLUR
模糊濾鏡
ImageFilter.CONTOUR
輪廓
ImageFilter.DETAIL
ImageFilter.EDGE_ENHANCE
邊界加強
ImageFilter.EDGE_ENHANCE_MORE
邊界加強(閥值更大)
ImageFilter.EMBOSS
浮雕濾鏡
ImageFilter.FIND_EDGES
邊界濾鏡
ImageFilter.SMOOTH
平滑濾鏡
ImageFilter.SMOOTH_MORE
平滑濾鏡(閥值更大)
ImageFilter.SHARPEN
銳化濾鏡
import ImageFilter
out = im.filter(ImageFilter.DETAIL)
總結
以上是生活随笔為你收集整理的python image.open 参数作用,python基础(python Image Library)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ChIP-seq分析流程(基于linux
- 下一篇: 111个Python数据分析实战项目,代