Python图像变清晰与锐化,调整对比度,高斯滤波除躁,卷积锐化,中值滤波钝化,神经网络变清晰

本次使用图片来源于百度

python 复制代码
import cv2
import time
import numpy as np
import pywt

from PIL import Image, ImageEnhance

#-i https://pypi.mirrors.ustc.edu.cn/simple

def super_resolution(input_path, output_path, model_path, scale=4):
    # 初始化超分辨率模型
    sr = cv2.dnn_superres.DnnSuperResImpl_create()
    sr.readModel(model_path)
    sr.setModel("edsr", scale)  # 模型类型需与文件名匹配

    # 读取低分辨率图像
    img_lr = cv2.imread(input_path)
    if img_lr is None:
        print("Error: 输入图像加载失败")
        return

    # 执行超分辨率重建
    start_time = time.time()
    img_sr = sr.upsample(img_lr)
    print(f"推理耗时: {time.time() - start_time:.2f}s")

    # 保存结果
    cv2.imwrite(output_path, img_sr)

    print(f"高分辨率图像已保存至: {output_path}")


def wavelet_denoise(image, wavelet='db4', level=1, mode='soft'):
    # 将图像转换为灰度图
    if len(image.shape) == 3:
        image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
 
    # 进行小波分解
    coeffs = pywt.wavedec2(image, wavelet, level=level)
 
    # 对每个细节系数应用阈值处理
    threshold = np.std(coeffs[-1]) * np.sqrt(2 * np.log2(image.size))
    new_coeffs = [coeffs[0]]
    for detail_coeffs in coeffs[1:]:
        new_detail_coeffs = [pywt.threshold(d, threshold, mode=mode) for d in detail_coeffs]
        new_coeffs.append(new_detail_coeffs)
 
    # 进行小波重构
    denoised_image = pywt.waverec2(new_coeffs, wavelet)
 
    # 将像素值限制在 0 到 255 之间
    denoised_image = np.clip(denoised_image, 0, 255).astype(np.uint8)
 
    return denoised_image

if __name__ == "__main__":
    # 参数配置
    input_img = "3.jpeg"    # 低分辨率图像路径
    output_img = "high_res3.jpg"  # 输出图像路径
    model_file = "EDSR_x4.pb"    # 预训练模型路径

    # 定义锐化卷积核
    kernel = np.array([[0, -1, 0],
                   [-1, 5, -1],
                   [0, -1, 0]])

    # 执行重建
    super_resolution(input_img, output_img, model_file)

    #打开图片

    image = Image.open('4.jpg')

    #调整对比度

    contrast = ImageEnhance.Contrast(image)

    image = contrast.enhance(1.5)

    #调整亮度

    brightness = ImageEnhance.Brightness(image)


    image = brightness.enhance(1.2)


    #保存处理后的图片

    image.save('enhanced_image.jpg')

    img = cv2.imread("enhanced_image.jpg")

    if img is None:
        print('none')

    denoised_image = wavelet_denoise(img)
 
    cv2.imwrite('result.png', denoised_image)

    sharpened = cv2.filter2D(denoised_image, -1, kernel)  # 应用卷积核

    #laplacian = cv2.Laplacian(denoised_image, cv2.CV_64F)
    #sharpened = cv2.convertScaleAbs(laplacian - 0.5*laplacian)  # 调节0.7系数控制锐化强度

    cv2.imwrite("output4.jpg", sharpened)

    image = cv2.imread('output4.jpg', cv2.IMREAD_GRAYSCALE)

    #高斯滤波

    gaussian_filtered_image = cv2.GaussianBlur(image, (3, 3), 0.02)

    #保存处理后的图片

    cv2.imwrite('gaussian_filtered_image.jpg', gaussian_filtered_image)
    
    #中值滤波

    median_filtered_image = cv2.medianBlur(gaussian_filtered_image, 5)

    #保存处理后的图片

    cv2.imwrite('median_filtered_image.jpg', median_filtered_image)

原始图像

亮度增强

高斯滤波

卷积锐化

中值平滑

相关推荐
冷雨夜中漫步28 分钟前
Python快速入门(6)——for/if/while语句
开发语言·经验分享·笔记·python
郝学胜-神的一滴1 小时前
深入解析Python字典的继承关系:从abc模块看设计之美
网络·数据结构·python·程序人生
百锦再1 小时前
Reactive编程入门:Project Reactor 深度指南
前端·javascript·python·react.js·django·前端框架·reactjs
喵手3 小时前
Python爬虫实战:旅游数据采集实战 - 携程&去哪儿酒店机票价格监控完整方案(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·零基础python爬虫教学·采集结果csv导出·旅游数据采集·携程/去哪儿酒店机票价格监控
2501_944934733 小时前
高职大数据技术专业,CDA和Python认证优先考哪个?
大数据·开发语言·python
啊森要自信3 小时前
CANN ops-cv:面向计算机视觉的 AI 硬件端高效算子库核心架构与开发逻辑
人工智能·计算机视觉·架构·cann
helloworldandy3 小时前
使用Pandas进行数据分析:从数据清洗到可视化
jvm·数据库·python
肖永威4 小时前
macOS环境安装/卸载python实践笔记
笔记·python·macos
TechWJ4 小时前
PyPTO编程范式深度解读:让NPU开发像写Python一样简单
开发语言·python·cann·pypto
枷锁—sha5 小时前
【SRC】SQL注入WAF 绕过应对策略(二)
网络·数据库·python·sql·安全·网络安全