计算机视觉—python+opencv完成图像处理基础(直方图、高斯滤波、直方图均衡化的结果)

前言

此次博客内容是回顾上学期的数字图像处理的内容,为后面的计算机视觉的课做铺垫。

一、实验目的

	利用python完成直方图、高斯滤波、直方图均衡化的结果。

二、实验内容

1.实现图像的直方图

(1)原理

图像直方图是反映一个图像像素分布的统计表,其实横坐标代表了图像像素的种类,可以是灰度的,也可以是彩色的。纵坐标代表了每一种颜色值在图像中的像素总数或者占所有像素个数的百分比。

(2)实现


import cv2
import matplotlib.pyplot as plt

img = cv2.imread('C:/Users/ASUS/Desktop/matlab.jpg')
grayimg = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)  # 转化为灰度图grayimg
cv2.imshow('img', img)
cv2.imshow('grayimg', grayimg)
cv2.waitKey(0)  # 显示的时间:如1000就是1000ms,0就是一直等待

cv2.destroyAllWindows()

arr1 = grayimg.flatten()  # 将灰度图转化成一维数组
plt.hist(arr1, bins=256, density=0, facecolor='blue', alpha=0.75)
# bins: 直方图的柱数,density=0:不进行归一化操作,值为1反之,facecolor:直方图颜色,alpha:透明度
plt.show()

在这里插入图片描述

在这里插入图片描述

2.高斯滤波

(1)原理

高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,广泛应用于图像去噪。可以简单地理解为,高斯滤波去噪就是对整幅图像像素值进行加权平均,针对每一个像素点的值,都由其本身值和邻域内的其他像素值经过加权平均后得到。高斯滤波的具体操作是:用一个用户指定的模板(或称卷积、掩膜)去扫描图像中的每一个像素,用模板确定的邻域内像素的加权平均灰度值去替代模板中心像素点的值。
gaussian_filter(): 高斯滤波函数,输入到函数的是矩阵以及标准差,返回值是和输入同样形状的矩阵;设置的标准差越大,得到的图像越模糊,

(2)实现
import cv2
import matplotlib.pyplot as plt


img = cv2.imread('C:/Users/ASUS/Desktop/matlab.jpg')
imgout = cv2.GaussianBlur(img, (3, 3), 0)
cv2.imshow('imgout',imgout)
cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()



原图:
在这里插入图片描述

高斯滤波之后的图片:
在这里插入图片描述

3.直方图均衡化的结果

(1)原理

直方图均衡化是将原图像通过某种变换,得到一幅灰度直方图为均匀分布的新图像的方法,这样增加了像素灰度值的动态范围,从而达到增强图像整体对比度的效果。

(2)实现


import cv2
import matplotlib.pyplot as plt

img = cv2.imread('C:/Users/ASUS/Desktop/matlab.jpg')
grayimg = cv2.cvtColor(img,cv2.COLOR_RGB2GRAY)#转化为灰度图grayimg
jen_heng= cv2.equalizeHist(grayimg)
arr2=jen_heng.flatten()#均衡化
cv2.imshow('prototype',grayimg)
cv2.imshow('jun hen hua', jen_heng)
cv2.waitKey(0)
plt.figure("done")
n2, bins2, patches2 = plt.hist(arr2, bins=256, density=0, facecolor='blue', alpha=0.75)
plt.show()



在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 好的,关于利用Python OpenCV实现照片的预处理,我可以给您一些简单的介绍。高斯平滑滤波通常被用来去除噪点,提高对比度可以通过调整图像的亮度、饱和度等来实现。灰度变换可以将彩色图像转换为黑白图像,二值化处理则可以将图像转换为只有两种颜色的图像。如果您需要详细的教程和代码实现,建议您在搜索引擎上查找相关内容,会有更全面的资料供您参考。 ### 回答2: 照片的预处理是图像处理中非常重要的一步,可以有效地提升后续算法的准确性和性能。利用Python OpenCV库可以方便地实现照片的预处理。 高斯平滑滤波是一种常用的图像平滑方法,可以去除图像中的噪声。通过使用OpenCV的GaussianBlur函数,可以将图像进行高斯平滑滤波处理。 提高对比度是调整图像亮度分布,使得图像更加清晰明亮的一种方法。可以使用OpenCV的convertTo函数来进行对比度调整。 灰度变换是将彩色图像转化为灰度图像的处理过程。通过使用OpenCV的cvtColor函数,可以将彩色图像转换为灰度图像。 二值化处理是将灰度图像转化为二值图像的处理过程。通过使用OpenCV的threshold函数,可以根据设置的阈值将灰度图像进行二值化处理。 综上所述,利用Python OpenCV实现照片的预处理可以按照以下步骤进行: 1. 首先使用GaussianBlur函数对图像进行高斯平滑滤波处理,去除图像中的噪声。 2. 然后使用convertTo函数调整图像对比度,使得图像更加清晰明亮。 3. 接着使用cvtColor函数将彩色图像转换为灰度图像。 4. 最后使用threshold函数对灰度图像进行二值化处理,得到二值图像。 通过上述步骤的处理,可以有效地对照片进行预处理,提取出目标信息,为后续的图像算法提供清晰的输入。 ### 回答3: Python OpenCV是一个Python编程语言的开源计算机视觉库,可以用于图像处理计算机视觉任务。以下是使用Python OpenCV实现照片预处理的一些常见方法: 1. 高斯平滑滤波:高斯平滑滤波是一种常见的图像平滑处理方法,可以去除图像中的噪声。可以使用OpenCV的GaussianBlur函数来实现高斯平滑滤波。通过调整滤波器的大小和标准差参数,可以控制平滑的程度。 2. 提高对比度:提高图像对比度可以使图像更饱满和清晰。可以使用OpenCV的equalizeHist函数来实现直方图均衡化,该函数将图像的像素值拉伸到0到255之间,从而增加图像的对比度。 3. 灰度变换:将彩色图像转换为灰度图像是图像处理中常见的一步。可以使用OpenCV的cvtColor函数将彩色图像转换为灰度图像。灰度图像只有一个通道,每个像素的值表示亮度。 4. 二值化处理:二值化处理将图像分割为黑白两个部分,可以用于图像分割和图像识别任务。可以使用OpenCV的threshold函数来实现图像二值化处理,该函数将图像像素值大于阈值的像素设为白色,小于等于阈值的像素设为黑色。阈值的选择可以根据具体情况调整。 要实现这些预处理步骤,首先需要安装Python OpenCV库。然后,读取图像文件,并依次使用上述函数来进行预处理。最后,可以保存预处理后的图像文件或在展示图像时使用。通过调整参数和多种方法的组合,可以获得不同的预处理效果。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值