日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python image.open 参数作用,python基础(python Image Library)

發布時間:2023/12/20 python 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。