图像处理----图像轮廓和直方图

绘制图像的轮廓(或者其他二维函数的等轮廓线)在工作中是非常重要的。因为绘制轮廓需要对每个坐标[x,y]的像素值施加同一个阈值,所以需要将图像灰度化。

下图是从这个网站获取的免费的图像资源:Openly Licensed Images, Audio and More | Openverse​​​​​​

 我们知道:图像的直方图用来表征该图像像素的分布情况。用一定数目的兄啊去见(bin)来指定表征像素值的范围,每个小区间会得到落入该兄啊去见表示范围的像素数目。该(灰度)图像可以用hist()函数绘制。hist()函数的第二个参数指定小区间的数目。需要注意的是,因为hist()函数只接受以为数组作为输入,所以我们在绘制图像直方图前,必须先对图像进行压平处理。注意到flatten()方法将任意数组按照行优先准则转换成以为数组。

代码如下:

from PIL import Image
from pylab import *

#读取图像到数组中:
im = array(Image.open("D:\\software\\pycharm\\PycharmProjects\\computer-version\\data\\tu3.jpg").convert('L'))

#新建一个图像:
figure()
#不适用颜色信息:
gray()
#在原点的左上角显示轮廓图像:
contour(im,origin='image')
axis('equal')
axis('off')

figure()
#用hist()函数来绘制直方图:
hist(im.flatten(),128)
show()

得到的图像等轮廓线如下图所示:

得到的直方图如下图所示:

猜你喜欢

转载自blog.csdn.net/qq_44896301/article/details/129206624