刚刚开始接触计算机视觉的课程,按照老师要求完成图像处理基础部分的内容,并且将其中的直方图,高斯滤波和直方图均衡化的实验结果写在该博客。
虽然图像处理的内容在上学期已经学习过,但是之前都是使用Matlab来进行编程实现。对于Python,完全是一窍不通。前期安装和配置Python和OpenCV以及PyCharm软件的安装和库的导入就花费了不小的功夫,好在顺利地得到了实验结果。
展示如下:
1.直方图
基本原理:
直方图是反映一个图像像素分布的统计表。横坐标代表像素的种类,纵坐标代表每一种像素值(也可以是彩色,一般为灰色)在图像中的像素总数或者占所有像素个数的百分比,能够很直观的展示出图像中各个像素值占比的多少。
图像的灰度直方图(直方图的一类,经常被使用)是灰度级的函数,描述的是图像中具有该灰度级的像素的个数:其中,横坐标是灰度级,纵坐标是该灰度级出现的频率或个数。
代码如下:from PIL import Image
from pylab import *
# 添加中文字体支持
from matplotlib.font_manager import FontProperties
font = FontProperties(fname=r"c:\windows\fonts\SimSun.ttc", size=14)
im = array(Image.open('D:\\MATLAB\\bin\\fj.jpg').convert('L')) # 打开图像,并转成灰度图像
figure()
subplot(121)
gray()
contour(im, origin='image')
axis('equal')
axis('off')
title(u'图像轮廓', fontproperties=font)
subplot(122)
hist(im.flatten(), 128)
title(u'图像直方图', fontproperties=font)
plt.xlim([0,260])