當前位置:首頁 » 編程語言 » python351

python351

發布時間: 2022-09-05 03:01:34

python的pillow庫怎麼處理灰度圖像

Pillow是Python里的圖像處理庫(PIL:Python Image Library),提供了了廣泛的文件格式支持,強大的圖像處理能力,主要包括圖像儲存、圖像顯示、格式轉換以及基本的圖像處理操作等。
1)使用 Image 類
PIL最重要的類是 Image class, 你可以通過多種方法創建這個類的實例;你可以從文件載入圖像,或者處理其他圖像, 或者從 scratch 創建。
要從文件載入圖像,可以使用open( )函數,在Image模塊中:
>>> from PIL import Image
>>> im = Image.open("E:/photoshop/1.jpg")

載入成功後,將返回一個Image對象,可以通過使用示例屬性查看文件內容:

>>> print(im.format, im.size, im.mode)
('JPEG', (600, 351), 'RGB')
>>>

format 這個屬性標識了圖像來源。如果圖像不是從文件讀取它的值就是None。size屬性是一個二元tuple,包含width和height(寬度和高度,單位都是px)。 mode 屬性定義了圖像bands的數量和名稱,以及像素類型和深度。常見的modes 有 「L」 (luminance) 表示灰度圖像, 「RGB」 表示真彩色圖像, and 「CMYK」 表示出版圖像。
如果文件打開錯誤,返回 IOError 錯誤。
只要你有了 Image 類的實例,你就可以通過類的方法處理圖像。比如,下列方法可以顯示圖像:
im.show()

2)讀寫圖像
PIL 模塊支持大量圖片格式。使用在 Image 模塊的 open() 函數從磁碟讀取文件。你不需要知道文件格式就能打開它,這個庫能夠根據文件內容自動確定文件格式。要保存文件,使用 Image 類的 save() 方法。保存文件的時候文件名變得重要了。除非你指定格式,否則這個庫將會以文件名的擴展名作為格式保存。
載入文件,並轉化為png格式:

"Python Image Library Test"
from PIL import Image
import os
import sys

for infile in sys.argv[1:]:
f,e = os.path.splitext(infile)
outfile = f +".png"
if infile != outfile:
try:
Image.open(infile).save(outfile)
except IOError:
print("Cannot convert", infile)

save() 方法的第二個參數可以指定文件格式。
3)創建縮略圖
縮略圖是網路開發或圖像軟體預覽常用的一種基本技術,使用Python的Pillow圖像庫可以很方便的建立縮略圖,如下:
# create thumbnail
size = (128,128)
for infile in glob.glob("E:/photoshop/*.jpg"):
f, ext = os.path.splitext(infile)
img = Image.open(infile)
img.thumbnail(size,Image.ANTIALIAS)
img.save(f+".thumbnail","JPEG")

上段代碼對photoshop下的jpg圖像文件全部創建縮略圖,並保存,glob模塊是一種智能化的文件名匹配技術,在批圖像處理中經常會用到。
注意:Pillow庫不會直接解碼或者載入圖像柵格數據。當你打開一個文件,只會讀取文件頭信息用來確定格式,顏色模式,大小等等,文件的剩餘部分不會主動處理。這意味著打開一個圖像文件的操作十分快速,跟圖片大小和壓縮方式無關。
4)圖像的剪切、粘貼與合並操作
Image 類包含的方法允許你操作圖像部分選區,PIL.Image.Image.crop 方法獲取圖像的一個子矩形選區,如:

# crop, paste and merge
im = Image.open("E:/photoshop/lena.jpg")
box = (100,100,300,300)
region = im.crop(box)

矩形選區有一個4元元組定義,分別表示左、上、右、下的坐標。這個庫以左上角為坐標原點,單位是px,所以上訴代碼復制了一個 200×200 pixels 的矩形選區。這個選區現在可以被處理並且粘貼到原圖。

region = region.transpose(Image.ROTATE_180)
im.paste(region, box)

當你粘貼矩形選區的時候必須保證尺寸一致。此外,矩形選區不能在圖像外。然而你不必保證矩形選區和原圖的顏色模式一致,因為矩形選區會被自動轉換顏色。
5)分離和合並顏色通道
對於多通道圖像,有時候在處理時希望能夠分別對每個通道處理,處理完成後重新合成多通道,在Pillow中,很簡單,如下:

r,g,b = im.split()
im = Image.merge("RGB", (r,g,b))

對於split( )函數,如果是單通道的,則返回其本身,否則,返回各個通道。
6)幾何變換
對圖像進行幾何變換是一種基本處理,在Pillow中包括resize( )和rotate( ),如用法如下:

out = im.resize((128,128))
out = im.rotate(45) # degree conter-clockwise

其中,resize( )函數的參數是一個新圖像大小的元祖,而rotate( )則需要輸入順時針的旋轉角度。在Pillow中,對於一些常見的旋轉作了專門的定義:

out = im.transpose(Image.FLIP_LEFT_RIGHT)
out = im.transpose(Image.FLIP_TOP_BOTTOM)
out = im.transpose(Image.ROTATE_90)
out = im.transpose(Image.ROTATE_180)
out = im.transpose(Image.ROTATE_270)

7)顏色空間變換
在處理圖像時,根據需要進行顏色空間的轉換,如將彩色轉換為灰度:

cmyk = im.convert("CMYK")
gray = im.convert("L")

8)圖像濾波
圖像濾波在ImageFilter 模塊中,在該模塊中,預先定義了很多增強濾波器,可以通過filter( )函數使用,預定義濾波器包括:
BLUR、CONTOUR、DETAIL、EDGE_ENHANCE、EDGE_ENHANCE_MORE、EMBOSS、FIND_EDGES、SMOOTH、SMOOTH_MORE、SHARPEN。其中BLUR就是均值濾波,CONTOUR找輪廓,FIND_EDGES邊緣檢測,使用該模塊時,需先導入,使用方法如下:

from PIL import ImageFilter

imgF = Image.open("E:/photoshop/lena.jpg")
outF = imgF.filter(ImageFilter.DETAIL)
conF = imgF.filter(ImageFilter.CONTOUR)
edgeF = imgF.filter(ImageFilter.FIND_EDGES)
imgF.show()
outF.show()
conF.show()
edgeF.show()

除此以外,ImageFilter模塊還包括一些擴展性強的濾波器:
class PIL.ImageFilter.GaussianBlur(radius=2)

❷ centos 7 為什麼 python3 知乎

1–下載python3.5的包
在python官網https://www.python.org/downloads/release/python-351/
下載tgz包就可以了。其實下面的2個包其一都可以使用
Python-3.5.1.tgz (這個不是編譯過的東西,不能解壓之後直接使用)
Python-3.5.1.tar.xz (這個是pthon的源碼)
2–解壓文件
tar -xf Python-3.5.1.tgz

3–解壓之後有一個目錄Python-3.5.1,進入目錄
cd Python-3.5.1

4–開始安裝,使用編譯的方法進行安裝
在python的目錄中有一個README文件,他介紹了如何安裝python。 但是我們要指定這個安裝目錄
mkdir /usr/python3.5./configure --prefix=/usr/python3.5makemake install

說明./configure命令執行完畢之後創建一個文件creating Makefile,供下面的make命令使用 執行make install之後就會把程序安裝到我們指定的目錄中去
5–讓系統默認使用Python 3.5.1
在/usr/bin中有python、python2、python2.7三個文件依次指向後者,我們將python備份
cd /usr/bin mv python python.bak ln -s /usr/python3.5/bin/python3 /usr/bin/python

注意我們編譯安裝之後在/usr/python3.5/bin下會自動生成一個python3的連接,他指向bin目錄中的python3.5
6–因為yum使用python2,因此替換為python3後可能無法正常工作,繼續使用這個python2.7.5
因此修改yum配置文件(sudo vi /usr/bin/yum)。 把文件頭部的#!/usr/bin/python改成#!/usr/bin/python2.7保存退出即可

❸ Python LXML模塊死活安裝不了怎麼辦

最好先說明一下你的python的版本,這樣更方便回答一些 我就簡單說一下我的解決辦法吧 平台是win10 64位 python版本是351 64位 打開python35程序 輸入 import pip; print(pippep425tagsget_supported()) 顯示如下圖: 詳細什麼意思就不太清Python LXML模塊死活安裝不了怎麼辦

❹ python的pillow庫怎麼使用

Pillow是Python里的圖像處理庫(PIL:Python Image Library),提供了了廣泛的文件格式支持,強大的圖像處理能力,主要包括圖像儲存、圖像顯示、格式轉換以及基本的圖像處理操作等。

1)使用 Image 類
PIL最重要的類是 Image class, 你可以通過多種方法創建這個類的實例;你可以從文件載入圖像,或者處理其他圖像, 或者從 scratch 創建。

要從文件載入圖像,可以使用open( )函數,在Image模塊中:

[python]view plain

  • >>>fromPILimportImage

  • >>>im=Image.open("E:/photoshop/1.jpg")

  • 載入成功後,將返回一個Image對象,可以通過使用示例屬性查看文件內容:

    [python]view plain

  • >>>print(im.format,im.size,im.mode)

  • ('JPEG',(600,351),'RGB')

  • >>>

  • format這個屬性標識了圖像來源。如果圖像不是從文件讀取它的值就是None。size屬性是一個二元tuple,包含width和height(寬度和高度,單位都是px)。mode屬性定義了圖像bands的數量和名稱,以及像素類型和深度。常見的modes 有 「L」 (luminance) 表示灰度圖像, 「RGB」 表示真彩色圖像, and 「CMYK」 表示出版圖像。
    如果文件打開錯誤,返回IOError錯誤。
    只要你有了 Image 類的實例,你就可以通過類的方法處理圖像。比如,下列方法可以顯示圖像:

    [python]view plain

  • im.show()

  • 2)讀寫圖像
    PIL 模塊支持大量圖片格式。使用在 Image 模塊的 open() 函數從磁碟讀取文件。你不需要知道文件格式就能打開它,這個庫能夠根據文件內容自動確定文件格式。要保存文件,使用 Image 類的 save() 方法。保存文件的時候文件名變得重要了。除非你指定格式,否則這個庫將會以文件名的擴展名作為格式保存。

    載入文件,並轉化為png格式:

    [python]view plain

  • "PythonImageLibraryTest"

  • fromPILimportImage

  • importos

  • importsys

  • forinfileinsys.argv[1:]:

  • f,e=os.path.splitext(infile)

  • outfile=f+".png"

  • ifinfile!=outfile:

  • try:

  • Image.open(infile).save(outfile)

  • exceptIOError:

  • print("Cannotconvert",infile)

  • save() 方法的第二個參數可以指定文件格式。
    3)創建縮略圖

    縮略圖是網路開發或圖像軟體預覽常用的一種基本技術,使用Python的Pillow圖像庫可以很方便的建立縮略圖,如下:

    [python]view plain

  • #createthumbnail

  • size=(128,128)

  • forinfileinglob.glob("E:/photoshop/*.jpg"):

  • f,ext=os.path.splitext(infile)

  • img=Image.open(infile)

  • img.thumbnail(size,Image.ANTIALIAS)

  • img.save(f+".thumbnail","JPEG")

  • 上段代碼對photoshop下的jpg圖像文件全部創建縮略圖,並保存,glob模塊是一種智能化的文件名匹配技術,在批圖像處理中經常會用到。
    注意:Pillow庫不會直接解碼或者載入圖像柵格數據。當你打開一個文件,只會讀取文件頭信息用來確定格式,顏色模式,大小等等,文件的剩餘部分不會主動處理。這意味著打開一個圖像文件的操作十分快速,跟圖片大小和壓縮方式無關。

    4)圖像的剪切、粘貼與合並操作

    Image 類包含的方法允許你操作圖像部分選區,PIL.Image.Image.crop 方法獲取圖像的一個子矩形選區,如:

    [python]view plain

  • #crop,pasteandmerge

  • im=Image.open("E:/photoshop/lena.jpg")

  • box=(100,100,300,300)

  • region=im.crop(box)

  • 矩形選區有一個4元元組定義,分別表示左、上、右、下的坐標。這個庫以左上角為坐標原點,單位是px,所以上訴代碼復制了一個 200x200 pixels 的矩形選區。這個選區現在可以被處理並且粘貼到原圖。

    [python]view plain

  • region=region.transpose(Image.ROTATE_180)

  • im.paste(region,box)

  • 當你粘貼矩形選區的時候必須保證尺寸一致。此外,矩形選區不能在圖像外。然而你不必保證矩形選區和原圖的顏色模式一致,因為矩形選區會被自動轉換顏色。

    5)分離和合並顏色通道

    對於多通道圖像,有時候在處理時希望能夠分別對每個通道處理,處理完成後重新合成多通道,在Pillow中,很簡單,如下:

    [python]view plain

  • r,g,b=im.split()

  • im=Image.merge("RGB",(r,g,b))

  • 對於split( )函數,如果是單通道的,則返回其本身,否則,返回各個通道。
    6)幾何變換

    對圖像進行幾何變換是一種基本處理,在Pillow中包括resize( )和rotate( ),如用法如下:

    [python]view plain

  • out=im.resize((128,128))

  • out=im.rotate(45)#degreeconter-clockwise

  • 其中,resize( )函數的參數是一個新圖像大小的元祖,而rotate( )則需要輸入順時針的旋轉角度。在Pillow中,對於一些常見的旋轉作了專門的定義:

    [python]view plain

  • out=im.transpose(Image.FLIP_LEFT_RIGHT)

  • out=im.transpose(Image.FLIP_TOP_BOTTOM)

  • out=im.transpose(Image.ROTATE_90)

  • out=im.transpose(Image.ROTATE_180)

  • out=im.transpose(Image.ROTATE_270)

  • 7)顏色空間變換

    在處理圖像時,根據需要進行顏色空間的轉換,如將彩色轉換為灰度:

    [python]view plain

  • cmyk=im.convert("CMYK")

  • gray=im.convert("L")

  • 8)圖像濾波

    圖像濾波在ImageFilter 模塊中,在該模塊中,預先定義了很多增強濾波器,可以通過filter( )函數使用,預定義濾波器包括:

    BLUR、CONTOUR、DETAIL、EDGE_ENHANCE、EDGE_ENHANCE_MORE、EMBOSS、FIND_EDGES、SMOOTH、SMOOTH_MORE、SHARPEN。其中BLUR就是均值濾波,CONTOUR找輪廓,FIND_EDGES邊緣檢測,使用該模塊時,需先導入,使用方法如下:

    [python]view plain

  • fromPILimportImageFilter

  • imgF=Image.open("E:/photoshop/lena.jpg")

  • outF=imgF.filter(ImageFilter.DETAIL)

  • conF=imgF.filter(ImageFilter.CONTOUR)

  • edgeF=imgF.filter(ImageFilter.FIND_EDGES)

  • imgF.show()

  • outF.show()

  • conF.show()

  • edgeF.show()

  • 除此以外,ImageFilter模塊還包括一些擴展性強的濾波器:

  • classPIL.ImageFilter.GaussianBlur(radius=2)

  • Gaussian blur filter.

    參數:

    radius– Blur radius.
  • classPIL.ImageFilter.UnsharpMask(radius=2,percent=150,threshold=3)

  • Unsharp mask filter.

    See Wikipedia』s entry ondigital unsharp maskingfor an explanation of the parameters.

  • classPIL.ImageFilter.Kernel(size,kernel,scale=None,offset=0)

  • Create a convolution kernel. The current version only supports 3x3 and 5x5 integer and floating point kernels.

    In the current version, kernels can only be applied to 「L」 and 「RGB」 images.

    參數:

  • size– Kernel size, given as (width, height). In the current version, this must be (3,3) or (5,5).

  • kernel– A sequence containing kernel weights.

  • scale– Scale factor. If given, the result for each pixel is divided by this value. the default is the sum of the kernel weights.

  • offset– Offset. If given, this value is added to the result, after it has been divided by the scale factor.

  • classPIL.ImageFilter.RankFilter(size,rank)

  • Create a rank filter. The rank filter sorts all pixels in a window of the given size, and returns therank『th value.

    參數:

  • size– The kernel size, in pixels.

  • rank– What pixel value to pick. Use 0 for a min filter,size*size/2for a median filter,size*size-1for a max filter, etc.

  • classPIL.ImageFilter.MedianFilter(size=3)

  • Create a median filter. Picks the median pixel value in a window with the given size.

    參數:

    size– The kernel size, in pixels.
  • classPIL.ImageFilter.MinFilter(size=3)

  • Create a min filter. Picks the lowest pixel value in a window with the given size.

    參數:

    size– The kernel size, in pixels.
  • classPIL.ImageFilter.MaxFilter(size=3)

  • Create a max filter. Picks the largest pixel value in a window with the given size.

    參數:

    size– The kernel size, in pixels.
  • classPIL.ImageFilter.ModeFilter(size=3)

  • Create a mode filter. Picks the most frequent pixel value in a box with the given size. Pixel values that occur only once or twice are ignored; if no pixel value occurs more than twice, the original pixel value is preserved.

    參數:

    size– The kernel size, in pixels.

    更多詳細內容可以參考:PIL/ImageFilter

  • 9)圖像增強

    圖像增強也是圖像預處理中的一個基本技術,Pillow中的圖像增強函數主要在ImageEnhance模塊下,通過該模塊可以調節圖像的顏色、對比度和飽和度和銳化等:

    [python]view plain

  • fromPILimportImageEnhance

  • imgE=Image.open("E:/photoshop/lena.jpg")

  • imgEH=ImageEnhance.Contrast(imgE)

  • imgEH.enhance(1.3).show("30%morecontrast")

  • 圖像增強:

  • classPIL.ImageEnhance.Color(image)

  • Adjust image color balance.

    This class can be used to adjust the colour balance of an image, in a manner similar to the controls on a colour TV set. An enhancement factor of 0.0 gives a black and white image. A factor of 1.0 gives the original image.

  • classPIL.ImageEnhance.Contrast(image)

  • Adjust image contrast.

    This class can be used to control the contrast of an image, similar to the contrast control on a TV set. An enhancement factor of 0.0 gives a solid grey image. A factor of 1.0 gives the original image.

  • classPIL.ImageEnhance.Brightness(image)

  • Adjust image brightness.

    This class can be used to control the brighntess of an image. An enhancement factor of 0.0 gives a black image. A factor of 1.0 gives the original image.

  • classPIL.ImageEnhance.Sharpness(image)

  • Adjust image sharpness.

    This class can be used to adjust the sharpness of an image. An enhancement factor of 0.0 gives a blurred image, a factor of 1.0 gives the original image, and a factor of 2.0 gives a sharpened image.

  • 圖像增強的詳細內容可以參考:PIL/ImageEnhance

    除了以上介紹的內容外,Pillow還有很多強大的功能:

    PIL.Image.alpha_composite(im1,im2)

    PIL.Image.blend(im1,im2,alpha)

    PIL.Image.composite(image1,image2,mask)
    PIL.Image.eval(image,*args)

    PIL.Image.fromarray(obj,mode=None)

    PIL.Image.frombuffer(mode,size,data,decoder_name='raw',*args)

❺ python中 運行 print((5025-525)/100+18*17)的結果是351.0,為什麼是有一個小數點加個0呢,不是351呢

這是python的官方文檔里的一句說明:

上面圖片說白了就是,如果一項算式中有N個操作數,但是只要有1個操作數是符點型(符點型就簡單的理解為帶小數點的數即可),則最終的結果的類型就是符點型。

因為除法得到的結果是符點型的 //可以在python解釋器中輸入type(2/1),會告訴你結果是float類型

所以(5025-525)/100這步的運算得到的是一個符點型值45.0,既然運算中有一個是符點型值了,則後面無論加減乘除,你最終得到的結果都是符點型,而符點型的標志就是小數點,所以即使是整數也顯示的是後面帶.0的

*.看看能看明白不,哪句不清楚,可以追問

❻ 如何用Python編寫一個素數環

代碼:
n = int(input("請輸入最大數n:"))
lists = [[1]]#多個素數環
surplusnum = list(range(1,n+1)) #剩餘的數
def sumisprime(x, y):
#x與y之和是否是素數
isprime=True#是否是素數
s = x + y#和
for i in range(2, int(s**0.5)+1):
#素數判定法:從2開始直到此數的開方內的整數都不能被該數整除,則此數為素數
if s%i == 0:#能被整除
isprime = False#不是素數
break#跳出循環
return isprime#返回後否是素數(是:True,否:False)
changelast=lambda listx,addvalue:listx[0:-1]+[addvalue]#改變列表末尾的函數
while len(lists[0] if len(lists) else [0]*n) < n:#當素數環長度小於最大數時
n2 = len(lists[0]) #n2為判定,理論當前列表長度最大值
for listn in lists:#遍歷各個可能的素數環
surplusnum=list(range(1,n+1))#默認值
for j in listn:#遍歷當前列表的數
surplusnum.remove(j)#剩餘的數中刪除此數
for i in surplusnum:#遍歷剩餘的數
if sumisprime(listn[n2-1], i):#最後一個數與它的和是素數
if len(listn) == n2:#如果現在這個列表是沒有被添加過的
listn.append(i)#增加在這個列表
else:#如果該列表已經被添加過
lista = changelast(listn, i)#要加入的列表
if lista not in lists:#如果不在這個列表裡
lists.append(lista)#添加到另一個列表
for listn in lists.():#防止lists被刪造成影響
if len(listn) != n2+1:#如果長度沒有達到預期(+1)
lists.remove(listn)#刪除該列表(取消此可能性)
if len(lists[0]) == n:#已經符合條件
for listn in lists:#遍歷列表,檢查首尾
if sumisprime(listn[-1], listn[0]):#如果首尾相加等於素數
print(listn)#環成立,列印出來
break#結束循環
說明:經試驗,都沒什麼問題,n=12也能很快運算完(但我勸你不要打出來),如果你只需要1個素數環,可以把break的縮進調到print(listn)並列。

❼ Python不能安裝ez_setup.py,提示錯誤,怎麼辦

需要進入你的python安裝路徑,更改裡面的代碼,再次用cmd運行安裝命令即可。

❽ python圖像處理初學者求助

Pillow是Python里的圖像處理庫(PIL:Python Image Library),提供了了廣泛的文件格式支持,強大的圖像處理能力,主要包括圖像儲存、圖像顯示、格式轉換以及基本的圖像處理操作等。
1)使用 Image 類
PIL最重要的類是 Image class, 你可以通過多種方法創建這個類的實例;你可以從文件載入圖像,或者處理其他圖像, 或者從 scratch 創建。
要從文件載入圖像,可以使用open( )函數,在Image模塊中:

1
2

>>> from PIL import Image
>>> im = Image.open("E:/photoshop/1.jpg")

載入成功後,將返回一個Image對象,可以通過使用示例屬性查看文件內容:

1
2
3

>>> print(im.format, im.size, im.mode)
('JPEG', (600, 351), 'RGB')
>>>

format 這個屬性標識了圖像來源。如果圖像不是從文件讀取它的值就是None。size屬性是一個二元tuple,包含width和height(寬度和高度,單位都是px)。 mode 屬性定義了圖像bands的數量和名稱,以及像素類型和深度。常見的modes 有 「L」 (luminance) 表示灰度圖像, 「RGB」 表示真彩色圖像, and 「CMYK」 表示出版圖像。
如果文件打開錯誤,返回 IOError 錯誤。
只要你有了 Image 類的實例,你就可以通過類的方法處理圖像。比如,下列方法可以顯示圖像:

1

im.show()

2)讀寫圖像
PIL 模塊支持大量圖片格式。使用在 Image 模塊的 open() 函數從磁碟讀取文件。你不需要知道文件格式就能打開它,這個庫能夠根據文件內容自動確定文件格式。要保存文件,使用 Image 類的 save() 方法。保存文件的時候文件名變得重要了。除非你指定格式,否則這個庫將會以文件名的擴展名作為格式保存。
載入文件,並轉化為png格式:

1
2
3
4
5
6
7
8
9
10
11
12
13

"Python Image Library Test"
from PIL import Image
import os
import sys

for infile in sys.argv[1:]:
f,e = os.path.splitext(infile)
outfile = f +".png"
if infile != outfile:
try:
Image.open(infile).save(outfile)
except IOError:
print("Cannot convert", infile)

save() 方法的第二個參數可以指定文件格式。
3)創建縮略圖
縮略圖是網路開發或圖像軟體預覽常用的一種基本技術,使用Python的Pillow圖像庫可以很方便的建立縮略圖,如下:

1
2
3
4
5
6
7

# create thumbnail
size = (128,128)
for infile in glob.glob("E:/photoshop/*.jpg"):
f, ext = os.path.splitext(infile)
img = Image.open(infile)
img.thumbnail(size,Image.ANTIALIAS)
img.save(f+".thumbnail","JPEG")

上段代碼對photoshop下的jpg圖像文件全部創建縮略圖,並保存,glob模塊是一種智能化的文件名匹配技術,在批圖像處理中經常會用到。
注意:Pillow庫不會直接解碼或者載入圖像柵格數據。當你打開一個文件,只會讀取文件頭信息用來確定格式,顏色模式,大小等等,文件的剩餘部分不會主動處理。這意味著打開一個圖像文件的操作十分快速,跟圖片大小和壓縮方式無關。
4)圖像的剪切、粘貼與合並操作
Image 類包含的方法允許你操作圖像部分選區,PIL.Image.Image.crop 方法獲取圖像的一個子矩形選區,如:

1
2
3
4

# crop, paste and merge
im = Image.open("E:/photoshop/lena.jpg")
box = (100,100,300,300)
region = im.crop(box)

矩形選區有一個4元元組定義,分別表示左、上、右、下的坐標。這個庫以左上角為坐標原點,單位是px,所以上訴代碼復制了一個 200×200 pixels 的矩形選區。這個選區現在可以被處理並且粘貼到原圖。

1
2

region = region.transpose(Image.ROTATE_180)
im.paste(region, box)

當你粘貼矩形選區的時候必須保證尺寸一致。此外,矩形選區不能在圖像外。然而你不必保證矩形選區和原圖的顏色模式一致,因為矩形選區會被自動轉換顏色。
5)分離和合並顏色通道
對於多通道圖像,有時候在處理時希望能夠分別對每個通道處理,處理完成後重新合成多通道,在Pillow中,很簡單,如下:

1
2

r,g,b = im.split()
im = Image.merge("RGB", (r,g,b))

對於split( )函數,如果是單通道的,則返回其本身,否則,返回各個通道。
6)幾何變換
對圖像進行幾何變換是一種基本處理,在Pillow中包括resize( )和rotate( ),如用法如下:

1
2

out = im.resize((128,128))
out = im.rotate(45) # degree conter-clockwise

其中,resize( )函數的參數是一個新圖像大小的元祖,而rotate( )則需要輸入順時針的旋轉角度。在Pillow中,對於一些常見的旋轉作了專門的定義:

1
2
3
4
5

out = im.transpose(Image.FLIP_LEFT_RIGHT)
out = im.transpose(Image.FLIP_TOP_BOTTOM)
out = im.transpose(Image.ROTATE_90)
out = im.transpose(Image.ROTATE_180)
out = im.transpose(Image.ROTATE_270)

7)顏色空間變換
在處理圖像時,根據需要進行顏色空間的轉換,如將彩色轉換為灰度:

1
2

cmyk = im.convert("CMYK")
gray = im.convert("L")

8)圖像濾波

熱點內容
電腦怎麼查卡配置 發布:2025-01-14 20:01:29 瀏覽:27
手機怎麼控制伺服器 發布:2025-01-14 19:58:46 瀏覽:307
php難招 發布:2025-01-14 19:06:07 瀏覽:489
sublime編譯php 發布:2025-01-14 18:57:16 瀏覽:307
雲計算伺服器是什麼 發布:2025-01-14 18:56:22 瀏覽:44
vip域名查詢ftp 發布:2025-01-14 18:46:48 瀏覽:116
格式化linux 發布:2025-01-14 18:35:14 瀏覽:595
如何進入安卓原生市場 發布:2025-01-14 18:22:06 瀏覽:560
台式電腦找不到伺服器 發布:2025-01-14 18:19:58 瀏覽:423
androidsdk網盤 發布:2025-01-14 18:17:43 瀏覽:82