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()

猜你喜欢

转载自blog.csdn.net/scopperil/article/details/80676289
今日推荐