python機器視覺學習筆記(一)

第一章 基本的圖像操作和處理

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直方圖均衡化

灰度變換中的一個有用的例子,指的是將一幅圖像的灰度直方圖扁平,是變幻後的圖像中每個灰度值的分佈概率都相同,在對圖像作進一步處理之前,直方圖均衡化通常是對圖像灰度值進行歸一化的一個非常好的方法,並且可以增強圖像的對比度。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章