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()
效果图:
高斯模糊:
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()
效果图:(左为原图,右为处理后的图像)
直方图均衡化:
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的各项操作,从学习中不断简化代码,提升自我实践水平