python-Matplotlib工具包

該工具包是處理數學運算、繪製圖表或者在圖像上繪製點、直線、曲線。

繪製圖像、點、和線

雖然Matplotlib可以繪製條形圖、餅狀圖、散點圖等,但對計算機視覺來說,只需要幾個繪圖命令。例如RCNN 目標檢測,識別框的繪製。

#Image是PIL裏的重要函數,導入PIL中的Image函數
#pylab是Matplotlib中的模塊,導入pylab中的所有內容

from PIL import Image
form pylab import * 

#讀取圖像到數組
im=array(Image.open('xxx.jpg'))
imshow(im)

#一些點
x=[100,200,300,400]
y=[100,200,300,400]

#紅色標註繪製點
plot(x,y,'r')
#繪製連接前兩個點的線
plot(x[:2],y[:2])

#添加標題
title('xxx')
show()

#關掉座標軸的顯示,注意座標軸以左上角爲原點
axis('off')

可以發現其實和matlab處理圖像基本一致。

圖像輪廓與直方圖

繪製圖形輪廓在圖像的邊緣檢測等都有用處,需要對每個座標[x,y]的像素值施加一個閾值,首先需要灰度化,然後

#新建一個圖像
figure()
#不適用顏色
gray()
#繪製輪廓圖像
contour(im,origin='image')
#x,y軸單位長度相等
axis('equal')
axis('off')

直方圖是表示該圖像像素值的分佈情況,在圖像處理的直方圖均衡化中會有作用。用一定的小區間來表示像素值的範圍(x),每個小區間會得到落入該區間的像素數目(y),簡單來說小區間是分組,然後統計每組像素數量。

figure()
#hist函數來繪製直方圖,參數128指的是小區間的數目
#flatton用於將任意數組轉換爲一維數組,因爲hist只接受一維數組

hist(im.flatten(),128)
show()

交互式標註

有時用戶需要標註一些點或者一些訓練數據,比如用戶在繪圖窗口圖像區域點擊三次,程序會將這些點[x,y]保存下來。

#ginput來自pylab庫
x=ginput(3)
print 'you clicked:',x
show()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章