最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python如何去除圖片干擾代碼示例

 更新時間:2025年06月17日 11:47:43   作者:detayun  
圖片降噪是一個廣泛應(yīng)用于圖像處理的技術(shù),可以提高圖像質(zhì)量和相關(guān)應(yīng)用的效果,這篇文章主要介紹了Python如何去除圖片干擾的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下

在Python中去除圖片干擾,需根據(jù)干擾類型(如噪聲、特定物體、強光等)選擇合適的方法。以下是分場景解決方案及代碼示例:

一、噪聲去除

1. 高斯噪聲(像素值正態(tài)分布擾動)

  • 方法:高斯濾波、雙邊濾波、小波變換
  • 代碼示例(OpenCV)
    import cv2
    import numpy as np
    
    # 讀取圖像并添加高斯噪聲
    image = cv2.imread('noisy_image.jpg')
    noise = np.random.normal(0, 25, image.shape).astype(np.uint8)
    noisy_image = cv2.add(image, noise)
    
    # 高斯濾波去噪
    gaussian_filtered = cv2.GaussianBlur(noisy_image, (5, 5), 0)
    
    # 雙邊濾波(保留邊緣)
    bilateral_filtered = cv2.bilateralFilter(noisy_image, d=9, sigmaColor=75, sigmaSpace=75)
    
    cv2.imshow('Original', image)
    cv2.imshow('Gaussian Filtered', gaussian_filtered)
    cv2.imshow('Bilateral Filtered', bilateral_filtered)
    cv2.waitKey(0)
    

2. 椒鹽噪聲(隨機黑白像素點)

  • 方法:中值濾波
  • 代碼示例(OpenCV)
    # 添加椒鹽噪聲(示例)
    x = image.reshape(-1)
    SNR = 0.85
    noise_num = int(x.size * (1 - SNR))
    random_indices = np.random.choice(x.size, noise_num, replace=False)
    x[random_indices] = np.random.choice([0, 255], noise_num)
    noisy_image = x.reshape(image.shape)
    
    # 中值濾波去噪
    median_filtered = cv2.medianBlur(noisy_image, 5)
    

3. 復(fù)雜噪聲(如偽影)

  • 方法:非局部均值去噪(NLM)
  • 代碼示例(Scikit-image)
    from skimage import io, img_as_float
    from skimage.restoration import denoise_nl_means
    
    image = img_as_float(io.imread('noisy_image.jpg'))
    denoised = denoise_nl_means(image, h=0.1, fast_mode=True, patch_size=5, patch_distance=3)
    

二、特定干擾去除

1. 干擾線(如掃描文檔中的橫線)

  • 方法:二值化 + 鄰域分析
  • 代碼示例(Pillow)
    from PIL import Image, ImageFilter
    
    def remove_lines(image_path, threshold=128):
        image = Image.open(image_path).convert('L')  # 轉(zhuǎn)為灰度
        binarized = image.point(lambda x: 0 if x < threshold else 255, '1')
        clean = binarized.copy()
        width, height = binarized.size
    
        for y in range(1, height-1):
            for x in range(1, width-1):
                if binarized.getpixel((x, y)) == 0:
                    neighbors = [binarized.getpixel((x-1, y)), binarized.getpixel((x+1, y)),
                                 binarized.getpixel((x, y-1)), binarized.getpixel((x, y+1))]
                    if neighbors.count(0) >= 2:
                        clean.putpixel((x, y), 255)
        return clean
    
    cleaned_image = remove_lines('document.jpg')
    cleaned_image.save('cleaned_document.jpg')
    

2. 強光干擾(過曝區(qū)域)

  • 方法:顏色空間轉(zhuǎn)換 + 閾值調(diào)整
  • 代碼示例(OpenCV)
    import cv2
    import numpy as np
    
    image = cv2.imread('overexposed.jpg')
    hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
    lower = np.array([0, 0, 200])  # V通道閾值
    upper = np.array([180, 255, 255])
    mask = cv2.inRange(hsv, lower, upper)
    
    # 降低過曝區(qū)域亮度
    image[mask != 0] = cv2.add(image[mask != 0], (0, 0, -80))
    cv2.imwrite('corrected.jpg', image)
    

三、深度學(xué)習(xí)進(jìn)階方案

對于復(fù)雜場景(如混合噪聲、紋理干擾),可使用預(yù)訓(xùn)練模型(如U-Net、DnCNN):

import torch
from torchvision import models

# 加載預(yù)訓(xùn)練去噪模型(示例)
model = models.DnCNN().eval()
model.load_state_dict(torch.load('dncnn_pretrained.pth'))

# 預(yù)處理輸入
input_tensor = preprocess(noisy_image)  # 需自定義預(yù)處理函數(shù)
with torch.no_grad():
    output = model(input_tensor)
denoised_image = postprocess(output)  # 自定義后處理函數(shù)

四、方法選擇建議

  • 快速去噪:優(yōu)先使用OpenCV/Pillow的內(nèi)置濾波器(如cv2.medianBlur)。
  • 保留細(xì)節(jié):選擇雙邊濾波或小波變換。
  • 復(fù)雜噪聲:嘗試Scikit-image的非局部均值或深度學(xué)習(xí)模型。
  • 特定干擾:結(jié)合二值化、形態(tài)學(xué)操作或自定義像素分析邏輯。

通過調(diào)整濾波器參數(shù)(如核大小、閾值)或模型超參數(shù),可進(jìn)一步優(yōu)化去噪效果。

到此這篇關(guān)于Python如何去除圖片干擾的文章就介紹到這了,更多相關(guān)Python去除圖片干擾內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 如何用python和java分別寫出10道經(jīng)典題(含代碼)

    如何用python和java分別寫出10道經(jīng)典題(含代碼)

    Python與Java在語言特性、性能和應(yīng)用場景上各有優(yōu)勢,下面這篇文章主要介紹了如何用python和java分別寫出10道經(jīng)典題的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2026-05-05
  • Python計算一個點到所有點的歐式距離實現(xiàn)方法

    Python計算一個點到所有點的歐式距離實現(xiàn)方法

    今天小編就為大家分享一篇Python計算一個點到所有點的歐式距離實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • 使用Django中的filter方法進(jìn)行數(shù)據(jù)查詢的基本操作

    使用Django中的filter方法進(jìn)行數(shù)據(jù)查詢的基本操作

    在 Django 中,QuerySet 的 filter() 方法是一個強大的工具,用于從數(shù)據(jù)庫中檢索數(shù)據(jù)并根據(jù)指定的條件進(jìn)行篩選,在本文中,我們將介紹如何使用 filter() 方法來執(zhí)行各種類型的數(shù)據(jù)查詢操作,需要的朋友可以參考下
    2024-05-05
  • Django項目創(chuàng)建的圖文教程

    Django項目創(chuàng)建的圖文教程

    本文主要介紹了Django項目創(chuàng)建的圖文教程,文中通過圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • pycharm配置Qt?Designer工具的圖文教程

    pycharm配置Qt?Designer工具的圖文教程

    本文主要介紹了pycharm配置Qt?Designer工具的圖文教程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • 解決Python中pandas讀取*.csv文件出現(xiàn)編碼問題

    解決Python中pandas讀取*.csv文件出現(xiàn)編碼問題

    很多朋友在使用Python中pandas讀取csv文件時,出現(xiàn)編碼格式問題,接下來通過本文給大家分享解決Python中pandas讀取*.csv文件出現(xiàn)編碼問題,需要的朋友可以參考下
    2019-07-07
  • 在Python中將函數(shù)作為另一個函數(shù)的參數(shù)傳入并調(diào)用的方法

    在Python中將函數(shù)作為另一個函數(shù)的參數(shù)傳入并調(diào)用的方法

    今天小編就為大家分享一篇在Python中將函數(shù)作為另一個函數(shù)的參數(shù)傳入并調(diào)用的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Python實現(xiàn)普通圖片轉(zhuǎn)ico圖標(biāo)的方法詳解

    Python實現(xiàn)普通圖片轉(zhuǎn)ico圖標(biāo)的方法詳解

    ICO是一種圖標(biāo)文件格式,圖標(biāo)文件可以存儲單個圖案、多尺寸、多色板的圖標(biāo)文件。本文將利用Python實現(xiàn)普通圖片轉(zhuǎn)ico圖標(biāo),感興趣的小伙伴可以了解一下
    2022-11-11
  • Pytorch實現(xiàn)ResNet網(wǎng)絡(luò)之Residual Block殘差塊

    Pytorch實現(xiàn)ResNet網(wǎng)絡(luò)之Residual Block殘差塊

    這篇文章主要為大家介紹了Pytorch實現(xiàn)ResNet網(wǎng)絡(luò)之Residual Block殘差塊實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • Python操作Markdown格式文件的全攻略

    Python操作Markdown格式文件的全攻略

    Markdown?是一種輕量級標(biāo)記語言,用于以純文本形式編寫格式化文檔,廣泛應(yīng)用于技術(shù)文檔,博客,筆記管理以及學(xué)術(shù)寫作等場景,下面我們就來看看如何使用Python操作Markdown格式文件吧
    2026-03-03

最新評論

建水县| 开化县| 平谷区| 建宁县| 运城市| 华池县| 鹤岗市| 金华市| 岳西县| 葵青区| 静乐县| 镇安县| 巴彦淖尔市| 托克逊县| 舒城县| 额尔古纳市| 永康市| 嘉义县| 台山市| 宣城市| 桃园市| 南汇区| 江达县| 金溪县| 南昌县| 安泽县| 湖口县| 同仁县| 高邮市| 邹城市| 合阳县| 宣武区| 临猗县| 香港| 龙海市| 化州市| 盐源县| 龙陵县| 长沙县| 长沙市| 永靖县|