数字图像处理-灰度变换

本文介绍了OpenCV中的基本图像处理技术,包括灰度图像的转换、平均滤波去噪、图像反转、对数和伽马变换,以及直方图计算,展示了如何使用这些技术来增强和分析图像数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

灰度变换和空间滤波基础在这里插入图片描述在这里插入图片描述在这里插入图片描述

import cv2

def denoise_image(image_path):
    # 读取图像
    image = cv2.imread(image_path)
    
    # 将图像转为灰度图像
    gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    
    # 对灰度图像进行平均滤波
    denoised_image = cv2.blur(gray_image, (5, 5))
    
    # 显示原始图像和处理后的图像
    cv2.imshow("Original Image", image)
    cv2.imshow("Denoised Image", denoised_image)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
# 调用函数进行处理
denoise_image("image.jpg")
  • 灰度映射是一种基于图像像素的点操作,通过对原始图像中每个像素点赋予一个新的灰度值来增强图像。实际应用中,会根据增强的目的,设计某种“映射规则”,并使用“映射函数”来表示,对原始图像中的每个像素都用这个映射函数将原始灰度值转换为新的灰度值。
    在这里插入图片描述
import cv2

# 读取图像
image = cv2.imread('B:\\2024\project\DIP\DIPProject\img\\a1.png')

# 将图像转换为灰度图
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# 显示灰度图
cv2.imshow('Gray Image', gray_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

在这里插入图片描述

import cv2

# 读取灰度图像
img = cv2.imread('gray_image.png', 0)

# 图像反转
inverted_img = cv2.bitwise_not(img)

# 显示原图和反转后的图像
cv2.imshow('Original Image', img)
cv2.imshow('Inverted Image', inverted_img)
cv2.waitKey(0)
cv2.destroyAllWindows() 

在这里插入图片描述

#对数变换
import cv2
import numpy as np

def logarithmic_transform(image, c):
    # 对图像进行对数变换
    transformed_image = c * np.log1p(image)
    # 将像素值限制在0到255的范围内
    transformed_image = np.clip(transformed_image, 0, 255)
    # 将浮点型像素值转换为无符号8位整数
    transformed_image = transformed_image.astype(np.uint8)
    return transformed_image

# 读取原始图像
image = cv2.imread('image.jpg', cv2.IMREAD_GRAYSCALE)

# 设置对数变换的参数c
c = 10

# 对图像进行对数变换
transformed_image = logarithmic_transform(image, c)

# 保存处理之后的图像
cv2.imwrite('transformed_image.jpg', transformed_image)

在这里插入图片描述

import cv2
import numpy as np

# 加载图像
image = cv2.imread('input.jpg', 0)

# 设置伽马值
gamma = 1.5

# 执行幂率(伽马)变换
gamma_corrected = np.power(image / 255.0, gamma) * 255.0

# 将像素值限制在0到255之间
gamma_corrected = np.clip(gamma_corrected, 0, 255).astype(np.uint8)

# 保存处理后的图像
cv2.imwrite('output.jpg', gamma_corrected)

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

import cv2

# 读取图像
image = cv2.imread('image.jpg')

# 将图像转换为灰度图
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# 计算灰度直方图
histogram = cv2.calcHist([gray_image], [0], None, [256], [0, 256])

# 绘制直方图
import matplotlib.pyplot as plt
plt.plot(histogram)
plt.title('Gray Scale Histogram')
plt.xlabel('Pixel Value')
plt.ylabel('Frequency')

# 保存处理后的图像
cv2.imwrite('gray_image.jpg', gray_image)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值