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

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

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

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

一、噪聲去除

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

  • 方法:高斯濾波、雙邊濾波、小波變換
  • 代碼示例(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. 椒鹽噪聲(隨機(jī)黑白像素點(diǎn))

  • 方法:中值濾波
  • 代碼示例(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. 強(qiáng)光干擾(過(guò)曝區(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)
    
    # 降低過(guò)曝區(qū)域亮度
    image[mask != 0] = cv2.add(image[mask != 0], (0, 0, -80))
    cv2.imwrite('corrected.jpg', image)
    

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

對(duì)于復(fù)雜場(chǎng)景(如混合噪聲、紋理干擾),可使用預(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é)操作或自定義像素分析邏輯。

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

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

相關(guān)文章

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

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

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

    Python計(jì)算一個(gè)點(diǎn)到所有點(diǎn)的歐式距離實(shí)現(xiàn)方法

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新評(píng)論

桓仁| 永清县| 丘北县| 亳州市| 兴安盟| 海淀区| 巩留县| 临西县| 奎屯市| 濮阳县| 高州市| 郸城县| 惠东县| 中西区| 平原县| 苏尼特左旗| 阿鲁科尔沁旗| 绥棱县| 开远市| 中宁县| 宜城市| 阳城县| 莒南县| 敦煌市| 滕州市| 济源市| 莱州市| 金乡县| 安宁市| 米易县| 苏州市| 定襄县| 富蕴县| 兴宁市| 南皮县| 兴海县| 循化| 辽宁省| 察雅县| 离岛区| 玉林市|