第一章 基本的圖像操作和處理
1.1PIL:Pyhton的圖像處理類庫
from PIL import Image
pil_img = Image.open("圖片地址")
pil_img就是一個PIL的圖像對象
圖像的顏色轉換方法convert
轉換成灰度圖像.convert("L")
1.1.1轉換圖像格式
Image.save()open函數用於創建PIL的圖像對象而save方法用於保存圖像到具體指定文件名的文件
PIL函數會進行簡單的檢查,如果不是jpeg會自動進行轉換
1.1.2創建縮略圖
函數:thumbnail():接受一個元組參數,用於指定生成的縮略圖的代銷,然後將圖像轉換成符合元組參數的制定大小的縮略圖。
eg.pill_img.thumbnail((128,128))
1.1.3賦值和粘貼圖像區域
函數:crop:可以從一幅圖像中裁剪指定區域
一個四元組用來表示(←,↑,→,↓)
PIL座標系,左上角爲(0,0)
獲取了一定的區域然後使用paste的方法將區域放回去
1.1.4
條恆尺寸和旋轉
函數:resize同樣用元組表示大小,可以調整圖片的尺寸
函數:rotate用數字表示逆時針旋轉
1.2Matplotlib
1.2.1繪製圖像點和線
eg.
from PIL import Image
from pylab import *
im = array(Image.open("圖片路徑")
imshow(im)繪製圖像
x = [1,1,4,4]點
y = [2,5,2,5]點
plot(x,y,"r*")點上色(紅)
plot(x[:2],y[:2])
title('title_name:"圖片名')
show()
pylab中的一些格式
.點
O圈
s正方形
*型號
+加號
X叉號
1.2.2圖像輪廓和直方圖
figure()創建圖像
show()顯示圖像
繪製圖像等輪廓線:contour(im,origin = "image")
直方圖:hist(im.flatten(),128) flatten參數用來將多維數組轉化成一維數組,hist函數的第二格參數是小區間的數目
1.2.3交互式標註
ginput()交互式標註點
1.3NumPy(nmb怎麼裝怎麼GG)
python科學計算工具包
1.3.1圖像數組的表示
類型一般默認爲uint 8位
可以自行聲明 float double
數組中的元素可以通過下標訪問 value = im[i,j,k] i行j列k爲顏色通道
多個數組元素的訪問方法:切片
im[i,:] = im[j,:]把第j行的元素賦值給第i行的元素
im[:,:]訪問所有元素前面的冒號代表行,後面的冒號代表列,中間用逗號隔開
1.3.2灰度變換
反轉:像素數-im(黑變白,白變黑)
歸一:分數*im(用於取原區間的前部分) + 一個數(取從這個數爲基數往上的區間)(顏色歸一,向該數靠攏)
加重:平方(使暗的更暗)
1.3.3圖像縮放(同上)
1.3.4直方圖均衡化
灰度變換中的一個有用的例子,指的是將一幅圖像的灰度直方圖扁平,是變幻後的圖像中每個灰度值的分佈概率都相同,在對圖像作進一步處理之前,直方圖均衡化通常是對圖像灰度值進行歸一化的一個非常好的方法,並且可以增強圖像的對比度。