1.图像轮廓及直方图
这里用PIL的convert()方法将图像转换成灰度图像。图像的直方图用来表征图像像素值分布情况。用一定数目的小区间(bin)来指定表征像素值的范围,每个小区间会得到落入该小区间表示范围的像素数目。该灰度图像的直方图可以使用hist()函数来绘制。
from PIL import Image
from pylab import *
#读取图像到数组里
im=array(Image.open('me.jpg').convert('L'))
figure()
subplot(1,2 ,1)
gray()
contour(im,origin='image')
axis('equal')
axis('off')
subplot(1, 2, 2)
hist(im.flatten(),128)
show()
图像轮廓及直方图,因为我选择的图像轮廓特征较多所以看上去比较杂乱。
2.直方图均衡化
代码如下 我这边是直接调用opencv中的直方图均衡化函数。
from PIL import Image
from pylab import *
import numpy as np
import cv2
img = array(Image.open('me.jpg').convert('L')) # 打开图像,并转成灰度图像
img2 = cv2.equalizeHist(img)
figure()
subplot(2, 2, 1)