欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python實(shí)現(xiàn)PNG圖片黑色邊框自動(dòng)去除工具

 更新時(shí)間:2025年06月26日 09:39:07   作者:XXYBMOOO  
在日常的圖像處理工作中,我們經(jīng)常會(huì)遇到需要去除圖片黑色邊框的需求,本文將使用Python實(shí)現(xiàn)一個(gè)自動(dòng)化的 PNG 圖片黑色邊框去除工具,需要的可以了解下

前言

在日常的圖像處理工作中,我們經(jīng)常會(huì)遇到需要去除圖片黑色邊框的需求。這些黑色邊框可能來自掃描設(shè)備、截圖工具或其他圖像生成過程。手動(dòng)處理大量圖片既耗時(shí)又枯燥,今天我們就來實(shí)現(xiàn)一個(gè)自動(dòng)化的 PNG 圖片黑色邊框去除工具。

實(shí)現(xiàn)思路

我們可以使用 Python 的 OpenCV 庫(kù)來實(shí)現(xiàn)這一功能?;舅悸肥峭ㄟ^圖像閾值處理找到非黑色區(qū)域的邊界,然后裁剪掉黑色邊框部分。對(duì)于帶有透明通道的 PNG 圖片,我們還可以利用 alpha 通道信息更精確地定位主體內(nèi)容。

代碼實(shí)現(xiàn)

下面是完整的實(shí)現(xiàn)代碼:

import os
import cv2
import numpy as np

def remove_black_borders(image):
    """
    改進(jìn)版的去除黑色邊框函數(shù)
    """
    # 檢查是否有alpha通道
    if image.shape[2] == 4:
        # 使用alpha通道作為掩碼
        gray = image[:,:,3]
        _, thresh = cv2.threshold(gray, 1, 255, cv2.THRESH_BINARY)
    else:
        # 沒有alpha通道,使用常規(guī)方法
        gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
        _, thresh = cv2.threshold(gray, 10, 255, cv2.THRESH_BINARY)  # 提高閾值
    
    # 找到所有非黑色像素的坐標(biāo)
    coords = np.column_stack(np.where(thresh > 0))
    
    if len(coords) == 0:
        return image
    
    # 獲取邊界坐標(biāo)
    y_min, y_max = coords[:, 0].min(), coords[:, 0].max()
    x_min, x_max = coords[:, 1].min(), coords[:, 1].max()
    
    # 裁剪圖片
    cropped = image[y_min:y_max+1, x_min:x_max+1]
    
    return cropped

def process_png_files(input_folder, output_folder):
    """
    處理文件夾中的所有PNG文件
    """
    if not os.path.exists(output_folder):
        os.makedirs(output_folder)
    
    for filename in os.listdir(input_folder):
        if filename.lower().endswith('.png'):
            input_path = os.path.join(input_folder, filename)
            image = cv2.imread(input_path, cv2.IMREAD_UNCHANGED)  # 保留alpha通道
            
            if image is None:
                print(f"無法讀取圖片: {filename}")
                continue
            
            # 去除邊框
            processed_image = remove_black_borders(image)
            
            # 保存圖片
            output_path = os.path.join(output_folder, filename)
            cv2.imwrite(output_path, processed_image)
            print(f"已處理: {filename} (原始尺寸: {image.shape}, 處理后尺寸: {processed_image.shape})")


if __name__ == "__main__":
    # 輸入文件夾路徑(包含PNG圖片的文件夾)
    input_folder = "C:\\Users\\zxc8756\\Desktop\\input_images"  # 修改為你的輸入文件夾路徑
    
    # 輸出文件夾路徑(處理后的圖片將保存到這里)
    output_folder = "C:\\Users\\zxc8756\\Desktop\\output_images"  # 修改為你想要的輸出文件夾路徑
    
    # 處理圖片
    process_png_files(input_folder, output_folder)
    
    print("所有圖片處理完成!")

代碼解析

1. 核心功能函數(shù):remove_black_borders

這個(gè)函數(shù)負(fù)責(zé)檢測(cè)并去除圖片中的黑色邊框:

  • 首先判斷圖片是否有 alpha 通道,如果有則使用 alpha 通道作為掩碼
  • 對(duì)于沒有 alpha 通道的圖片,將其轉(zhuǎn)換為灰度圖并進(jìn)行閾值處理
  • 通過找到非零像素的坐標(biāo)來確定主體內(nèi)容的邊界
  • 最后根據(jù)邊界坐標(biāo)裁剪圖片

2. 批量處理函數(shù):process_png_files

這個(gè)函數(shù)用于批量處理指定文件夾中的所有 PNG 圖片:

  • 創(chuàng)建輸出文件夾(如果不存在)
  • 遍歷輸入文件夾中的所有 PNG 文件
  • 讀取圖片并調(diào)用 remove_black_borders 函數(shù)進(jìn)行處理
  • 將處理后的圖片保存到輸出文件夾,并打印處理信息

使用方法

安裝必要的庫(kù):

pip install opencv-python numpy

修改代碼中的輸入和輸出文件夾路徑:

# 輸入文件夾路徑(包含PNG圖片的文件夾)
input_folder = "C:\\Users\\zxc8756\\Desktop\\input_images"  # 修改為你的輸入文件夾路徑

# 輸出文件夾路徑(處理后的圖片將保存到這里)
output_folder = "C:\\Users\\zxc8756\\Desktop\\output_images"  # 修改為你想要的輸出文件夾路徑

運(yùn)行腳本,等待處理完成。腳本會(huì)自動(dòng)輸出每張圖片的處理前后尺寸信息。

應(yīng)用場(chǎng)景

這個(gè)工具在以下場(chǎng)景中特別有用:

  • 處理掃描文檔或圖片,去除邊緣的空白區(qū)域
  • 準(zhǔn)備圖標(biāo)素材時(shí),自動(dòng)裁剪掉多余的空白
  • 處理批量導(dǎo)出的 UI 元素,確保主體內(nèi)容居中且無冗余邊界

總結(jié)

通過使用 Python 和 OpenCV,我們實(shí)現(xiàn)了一個(gè)高效的 PNG 圖片黑色邊框自動(dòng)去除工具。這個(gè)工具不僅可以節(jié)省大量手動(dòng)處理圖片的時(shí)間,還能保證處理效果的一致性。你可以根據(jù)自己的需求進(jìn)一步擴(kuò)展這個(gè)工具,比如添加 GUI 界面、支持更多圖片格式或調(diào)整裁剪算法參數(shù)等。

到此這篇關(guān)于Python實(shí)現(xiàn)PNG圖片黑色邊框自動(dòng)去除工具的文章就介紹到這了,更多相關(guān)Python圖片邊框去除內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 利用numpy和pandas處理csv文件中的時(shí)間方法

    利用numpy和pandas處理csv文件中的時(shí)間方法

    下面小編就為大家分享一篇利用numpy和pandas處理csv文件中的時(shí)間方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • 基于keras 模型、結(jié)構(gòu)、權(quán)重保存的實(shí)現(xiàn)

    基于keras 模型、結(jié)構(gòu)、權(quán)重保存的實(shí)現(xiàn)

    今天小編就為大家分享一篇基于keras 模型、結(jié)構(gòu)、權(quán)重保存的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • 基于K.image_data_format() == ''channels_first'' 的理解

    基于K.image_data_format() == ''channels_first'' 的理解

    這篇文章主要介紹了基于K.image_data_format() == 'channels_first' 的理解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • Python 利用flask搭建一個(gè)共享服務(wù)器的步驟

    Python 利用flask搭建一個(gè)共享服務(wù)器的步驟

    這篇文章主要介紹了Python 利用flask搭建一個(gè)共享服務(wù)器的步驟,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-12-12
  • Python+Turtle繪制幸運(yùn)草的示例代碼

    Python+Turtle繪制幸運(yùn)草的示例代碼

    幸運(yùn)草又名四葉草,一般指四葉的苜蓿、或車軸草。在十萬株苜蓿草中,你可能只會(huì)發(fā)現(xiàn)一株是四葉草,機(jī)會(huì)率大約是十萬分之一。本文主要介紹運(yùn)用turtle庫(kù)控制函數(shù)繪制四葉草,希望見者皆好運(yùn)
    2022-06-06
  • Python?網(wǎng)頁請(qǐng)求之requests庫(kù)的使用詳解

    Python?網(wǎng)頁請(qǐng)求之requests庫(kù)的使用詳解

    requests?是?Python?中比較常用的網(wǎng)頁請(qǐng)求庫(kù),主要用來發(fā)送?HTTP?請(qǐng)求,在使用爬蟲或測(cè)試服務(wù)器響應(yīng)數(shù)據(jù)時(shí)經(jīng)常會(huì)用到,使用起來十分簡(jiǎn)潔,這篇文章主要介紹了Python?網(wǎng)頁請(qǐng)求之requests庫(kù)的使用詳解,需要的朋友可以參考下
    2022-09-09
  • python腳本使用阿里云slb對(duì)惡意攻擊進(jìn)行封堵的實(shí)現(xiàn)

    python腳本使用阿里云slb對(duì)惡意攻擊進(jìn)行封堵的實(shí)現(xiàn)

    這篇文章主要介紹了python腳本使用阿里云slb對(duì)惡意攻擊進(jìn)行封堵的實(shí)現(xiàn),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02
  • MacbookM1 python環(huán)境配置隨筆

    MacbookM1 python環(huán)境配置隨筆

    這篇文章主要介紹了MacbookM1 python環(huán)境配置隨筆,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • python3+PyQt5自定義視圖詳解

    python3+PyQt5自定義視圖詳解

    這篇文章主要為大家詳細(xì)介紹了python3+PyQt5自定義視圖的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • 基于python實(shí)現(xiàn)的百度新歌榜、熱歌榜下載器(附代碼)

    基于python實(shí)現(xiàn)的百度新歌榜、熱歌榜下載器(附代碼)

    這篇文章主要介紹了基于python實(shí)現(xiàn)的百度新歌榜、熱歌榜下載器(附代碼),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08

最新評(píng)論