计算机视觉Python3+opencv解决图像直方图,高斯滤波,直方图均衡化

1.环境

预装python3.7,使用pip install opencv-python 安装opencv库,一次成功

使用pycharm编译软件编写实现图像处理

2.原理

直方图:

图像的直方图用来表征该图像的像素值分布情况,用一定数目(通常为灰度的0~255)区间来确认图像像素值的数目.

高斯滤波:

本质上是一种数据平滑技术,每一点像素都取周围像素的平均值,是很好的去噪声方法

直方图均衡化:

直方图均衡化是指将图像的灰度直方图变平,使变换后的图像中每个灰度值的分布概率相同,可以增强图像对比度

3.实现

图像直方图:

import cv2
import matplotlib.pyplot as plt
src = cv2.imread("C:/Users/wwwmy/Desktop/jimei.jpg")
cv2.imshow("1",src)

plt.hist(src.ravel(),256)
plt.show()

cv2.waitKey()

效果图:

计算机视觉Python3+opencv解决图像直方图,高斯滤波,直方图均衡化_第1张图片

 高斯模糊:

import cv2
import matplotlib.pyplot as plt
src = cv2.imread("C:/Users/wwwmy/Desktop/jimei.jpg")
cv2.imshow("1",src)


kernel_size = (5, 5);
sigma = 1.5;
src1 = cv2.GaussianBlur(src,kernel_size,sigma)
cv2.imshow("2",src1)

# plt.hist(src.ravel(),256)
# plt.show()

cv2.waitKey()

效果图:(左为原图,右为处理后的图像)

计算机视觉Python3+opencv解决图像直方图,高斯滤波,直方图均衡化_第2张图片

 直方图均衡化:

import cv2
import numpy as np
import matplotlib.pyplot as plt
src = cv2.imread("C:/Users/wwwmy/Desktop/jimei.jpg",cv2.IMREAD_GRAYSCALE)

src1 = cv2.equalizeHist(src)


cv2.imshow("1",src)
cv2.imshow("2",src1)

cv2.waitKey()

效果图:左为未处理灰度图像,右为均衡化后灰度图像

计算机视觉Python3+opencv解决图像直方图,高斯滤波,直方图均衡化_第3张图片

 
总结:

熟悉了python3中opencv的各项操作,从学习中不断简化代码,提升自我实践水平

你可能感兴趣的:(opencv,计算机视觉,python)