PIL:Python圖像處理類庫
sudo apt install python-pip # 安裝pip
sudo pip install pillow
# 讀取一幅圖像
from PIL import Image
im = Image.open('filename.jpg')
# 顯示圖像
im.show()
# 灰度圖像
im_l = Image.open('filename.jpg').convert('L')
# 從文件名列表(filelist)中讀取所有的圖像文件妄帘,并轉(zhuǎn)換成JPEG格式
from PIL import Image
import os
for infile in filelist:
outfile = os.path.splitext(infile)[0] + ".jpg"
if infile != outfile:
try:
Image.open(infile).save(outfile)
except IOError:
print "cannot convert", infile
- 創(chuàng)建一個(gè)包含文件夾中所有圖像文件的文件名列表
imtool.py
import os
def get_imlist(path):
"""返回目錄中所有JPG圖像的文件名"""
return [os.path.join(path, f) for f in os.listdir(path) if f.endswith('.jpg')]
from PIL import Image
im = Image.open('filename.jpg')
# 最長邊為128像素的縮略圖,圖像比例不變
im.thumbnail((128, 128))
from PIL import Image
im = Image.open('filename.jpg')
# 裁剪指定區(qū)域
box = (100, 100, 400, 400) # 四元組的坐標(biāo)依次是(左,上犀呼,右,下)薇组,PIL中指定坐標(biāo)系的左上角坐標(biāo)為(0,0)
region = im.crop(box)
# 旋轉(zhuǎn)180°
region = region.transpose(Image.ROTATE_180)
im.paste(region, box) #粘貼圖像區(qū)域
from PIL import Image
im = Image.open('filename.jpg')
out = im.resize((128, 128)) # 圖像比例會(huì)改變
out = im.rotate(45) # 逆時(shí)針旋轉(zhuǎn)45°
Matplotlib
sudo pip install matplotlib
form PIL import Image
from pylab import *
# 讀取圖像到數(shù)組中
im = array(Image.open('filename.jpg'))
# 繪制圖像
imshow(im)
# 一些點(diǎn)
x = [100, 100, 400, 400]
y = [200, 500, 200, 500]
# 使用紅色星狀標(biāo)記繪制點(diǎn)
plot(x, y, 'r*')
# 繪制連接前兩個(gè)點(diǎn)的線,默認(rèn)藍(lán)色
plot(x[:2], y[:2])
# 添加標(biāo)題
title('plotting')
axis('off') # 坐標(biāo)軸不顯示
show() # 會(huì)阻斷腳本律胀,一般最后調(diào)用
plot(x, y) # 默認(rèn)為藍(lán)色實(shí)線
plot(x, y, 'r*') # 紅色星狀標(biāo)記
plot(x, y, 'go-') # 帶有圓圈標(biāo)記的綠線
plot(x, y, 'ks:') # 帶有正方形標(biāo)記的黑色點(diǎn)線
顏色 |
命令 |
藍(lán)色 |
'b' |
綠色 |
'g' |
紅色 |
'r' |
青色 |
'c' |
品紅 |
'm' |
黃色 |
'y' |
黑色 |
'k' |
白色 |
'w' |
線型 |
命令 |
實(shí)線 |
'-' |
虛線 |
'--' |
點(diǎn)線 |
':' |
標(biāo)記 |
命令 |
點(diǎn) |
'.' |
圓圈 |
'o' |
正方形 |
's' |
星形 |
'*' |
加號(hào) |
'+' |
叉號(hào) |
'x' |
from PIL import Image
from pylab import *
# 讀取圖像到數(shù)組中
im = array(Image.open('filename.jpg').convert('L'))
# 新建一個(gè)圖像
figure()
# 不使用顏色信息
gray()
# 在原點(diǎn)的左上角顯示輪廓圖像
contour(im, origin='image')
axis('equal')
axis('off')
# 直方圖
figure()
hist(im.flatten(), 128) # 小區(qū)間的數(shù)目宋光,只接受一維數(shù)組所以要先壓平
show()
from PIL import Image
from pylab import *
im = array(Image.open('filename.jpg'))
imshow(im)
print 'Please click 3 points'
x = ginput(3) # 把坐標(biāo)保存在x列表中
print 'you clicked:', x
show()