利用python实现烟雾图像处理
颜色规范化
直方图均衡化处理
背景减除法建立混合高斯模型
中值滤波去噪
颜色规范化最大值灰度处理
gray = max(r,g,b)
import cv2
import numpy as np
import matplotlib.pyplot as plt
# 读取原始图像
img = cv2.imread('smoke1.png')
# 获取图像高度和宽度
height = img.shape[0]
width = img.shape[1]
# 创建一幅图像
grayimg = np.zeros((height, width, 3), np.uint8)
# 图像最大值灰度处理
for i in range(height):
for j in range(width):
# 获取图像R G B最大值
gray = max(img[i, j][0], img[i, j][1], img[i, j][2])
# 灰度图像素赋值 gray=max(R,G,B)
grayimg[i, j] = np.uint8(gray)
# 显示图像
cv2.imshow("src", img)
cv2.imshow("gray", grayimg)
# 等待显示
cv2.waitKey(0)
cv2.destroyAllWindows()
平均灰度处理
gray = (r,g,b)/3
加权平均能得到较合理的灰度图像:
可以看到烟雾用加权平均处理比较好
烟雾的部分显示的比较明显
我们再用几个清楚的烟雾照片进行测试
直方图均衡处理
为什么要直方图均衡化处理
在现实的拍摄过程中
由于其图像的灰度分布集中在较窄的范围内
致了图像的细节不够清晰
为了使得图像变得清晰
就需要使得灰度值的差别变大
就意味着灰度分布就变的较宽
使得灰度值分布变得均匀
<