一张图片是由像素点矩阵构成,我们对图片进行操作即为对图片的像素点矩阵进行操作。我们只要在这个像素点矩阵中找到这个像素点的位置,比如第x行,第y列,所以这个像素点在这个像素点矩阵中的位置就可以表示成(x,y),因为一个像素点的颜色由红、绿、蓝三个颜色变量表示(R,G,B),所以我们通过给这三个变量赋值,来改变这个像素点的颜色。
1.将图片进行灰度化处理
图片的灰度化:将一个像素点的三个颜色变量相等,R=G=B,此时该值称为灰度值,直接调用opencv中的函数
# -*- coding: utf-8 -*-
from PIL import Image
from pylab import * # pylab库画图功能
# 添加中文字体支持
from matplotlib.font_manager import FontProperties
font = FontProperties(fname=r"c:\windows\fonts\SimSun.ttc", size=14)
figure()
pil_im = Image.open('C:/Users/asus/Pictures/window/tiger.jpg') # 原始图像
gray()
subplot(121) # 一行两列 ,第一个图 (显示)
title(u'原图', fontproperties=font)
axis('off')
imshow(pil_im)
# 读取图像并转换为灰度图像
pil_im = Image.open('C:/Users/asus/Pictures/window/tiger.jpg').convert('L')
subplot(122)
title(u'灰度图', fontproperties=font)
axis('off')
imshow(pil_im)
show() # 屏幕显示
2.用matplotlib画图像直方图
直方图:就是离散的概率分布图. 比如256灰度图.横轴就是像素值,从0-255,纵轴是当前像素值对应的像素个数。直方图标绘了图像中每个亮度值的像素数。可以借助观察该直方图了解需要如何调整亮度分布。这种直方图中,横坐标的左侧为纯黑、较暗的区域,而右侧为较亮、纯白的区域。因此,一张较暗图片的图像直方图中的数据多集中于左侧和中间部分;而整体明亮、只有少量阴影的图像则相反。
# -*- coding: utf-8 -*-
from PIL import Image
from pylab import *
# 添加中文字体支持
from matplotlib.font_manager import FontProperties
font = FontProperties(fname=r"c:\windows\fonts\SimSun.ttc", size=14