图像增强——python+opncv(直方图和直方图均衡化、使用图像灰度映射实现图像增强、图像空域增强与滤波)

这篇博客介绍了如何使用Python和OpenCV进行图像增强,包括直方图和直方图均衡化的计算与显示,以及灰度映射的线性、伽玛和对数变换。此外,还探讨了图像空域增强技术,如添加噪声和应用不同滤波器(box、高斯、中值)对图像进行处理。
摘要由CSDN通过智能技术生成

直方图和直方图均衡化

a) 计算图像R,G,B通道的直方图,并利用matplotlib显示出来

import cv2
import numpy as np
from matplotlib import pyplot as plt 

img = cv2.imread('F:/img/island.png')
color = ('r','g','b')

plt.figure(figsize=(7,7))
for i,col in enumerate(color):
    plt.hist(img[:,:,i].ravel(),256,[0,256],color = col);


plt.show()
plt.imshow(img,cmap = 'gray')

b) 计算图像island.png对应灰度图像的直方图和直方累计图,并利用matplotlib显示出来

c) 利cv2.equalizeHist()进行均衡化,并画出均衡化后的直方图和直方累计图

import cv2
import numpy as np
from matplotlib import pyplot as plt

img = cv2.imread('F:/img/island.png')
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

hist_img,_ = np.histogram(gray,256)
cdf_img = np.cumsum(hist_img)

plt.figure(figsize=(13,13))
plt.subplot(2,2,1)
plt.plot(range(256),cdf_img,color = 'b')
plt.legend(loc='best')

plt.subplot(2,2,2)
plt.hist(gray.ravel(),256,[0,256],color = 'b');


plt.subplot(2,2,3)
plt.imshow(gray,cmap = 'gray')

plt.show()

使用图像灰度映射实现图像增强

a) 图像的灰度线性变换是通过建立灰度映射来调整原始图像的灰度,从而改善图像的质量,凸显图像的细节,提高图像的对比度。灰度线性变换的计算公式如下所示 g(x)=αf(x)+β

# -*- coding: utf-8 -*-
"""
Created on Fri Apr 10 20:28:47 2020

@author: Administrator
"""

# -*- coding: utf-8 -*-
import cv2  
import numpy as np  
import matplotlib.pyplot as plt

#读取原始图像
img = cv2.imread('F:/img/lena.png')

#图像灰度转换
grayImage = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

#获取图像高度和宽度
height = grayImage.shape[0]
width = grayImage.shape[1]

#创建6幅图像
result_1 = np.zeros((height, width), np.uint8)
result_2 = np.zeros((height, width), np.uint8)
result_3 = np.zeros((height, width), np.uint8)
result_4 = np.zeros((height, width), np.uint8)
result_5 = np.zeros((height, width), np.uint8)
result_6 = np.zeros((height, width), np.uint8)

#保持原始图像
for i in range(height):
    for j in range(width):  
        if (int(grayImage[i,j]) > 255):
            gray = 255
        else:
            gray = 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值