计算机视觉---图像处理基础

目录

一、直方图

1.1直方图定义

1.2代码实现

1.3运行结果

二、高斯滤波

2.1定义

2.2代码实现

2.3运行结果

三、直方图均衡化

3.1定义

3.2代码实现

3.3运行结果


一、直方图

1.1直方图定义

用来表征该图像像素值得分布情况。用一定的小区间来指定表征像素值的范围,每个小区间会得到落入该小区间表示范围的像素数目。因此直方图不能显示图像中某像素所在的空间位置信息。

1.2代码实现

绘制直方图:使用Matplotlib自带的绘制工具plt.hist()绘制,hist(img,flatten(),128)。

hist()只接受一维数组作为输入,所以在绘制图像直方图之前,必须先对图像进行压平处理。flatten()方法将任意数组按照行优先准则转换成一维数组。第二个参数指定小区间的数目。

# 利用PIL库读取图像
from PIL import Image
import matplotlib.pyplot as plt
import numpy as np
import matplotlib.cm
import cv2


img = Image.open('H:\zhifangtu/123.jpg')
# 将图像转成灰度图并读取到数组中
img1 = np.array(img.convert('L'))    # 8位像素,黑白

# 使用matplotlib的库绘制图片进行显示
# 使其标题可以显示中文
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.figure()  # 新建一个图像
plt.subplot(1, 3, 1)
plt.imshow(img)
plt.title('原图')
plt.subplot(1, 3, 2)
plt.imshow(img1,cmap=matplotlib.cm.Greys_r)
plt.title('灰度图')
plt.axis('off')  # 不显示坐标轴

# 图像直方图
plt.subplot(1, 3, 3)
plt.hist(img1.flatten(), 128)
plt.title('直方图')
plt.xlim([0, 300])
plt.ylim([0, 12000])

plt.show()

1.3运行结果

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值