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

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

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

前言

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

實現(xiàn)思路

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

代碼實現(xiàn)

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

import os
import cv2
import numpy as np

def remove_black_borders(image):
    """
    改進版的去除黑色邊框函數(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

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

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

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

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

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

使用方法

安裝必要的庫:

pip install opencv-python numpy

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

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

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

運行腳本,等待處理完成。腳本會自動輸出每張圖片的處理前后尺寸信息。

應(yīng)用場景

這個工具在以下場景中特別有用:

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

總結(jié)

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

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

相關(guān)文章

  • 使用python生成大量數(shù)據(jù)寫入es數(shù)據(jù)庫并查詢操作(2)

    使用python生成大量數(shù)據(jù)寫入es數(shù)據(jù)庫并查詢操作(2)

    這篇文章主要介紹了使用python生成大量數(shù)據(jù)寫入es數(shù)據(jù)庫并查詢操作,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-09-09
  • python交互式圖形編程實例(三)

    python交互式圖形編程實例(三)

    這篇文章主要為大家詳細(xì)介紹了python交互式圖形編程實例第三篇,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • python 初始化一個定長的數(shù)組實例

    python 初始化一個定長的數(shù)組實例

    今天小編就為大家分享一篇python 初始化一個定長的數(shù)組實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • PyTorch模型轉(zhuǎn)TensorRT是怎么實現(xiàn)的?

    PyTorch模型轉(zhuǎn)TensorRT是怎么實現(xiàn)的?

    今天給大家?guī)淼氖顷P(guān)于Python的相關(guān)知識,文章圍繞著PyTorch模型轉(zhuǎn)TensorRT是怎么實現(xiàn)的展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • python腳本框架webpy入門安裝及應(yīng)用創(chuàng)建

    python腳本框架webpy入門安裝及應(yīng)用創(chuàng)建

    這篇文章主要為大家介紹了python腳本框架web.py的入門安裝及應(yīng)用創(chuàng)建過程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2021-11-11
  • Python queue模塊攻略全解

    Python queue模塊攻略全解

    這篇文章主要為大家介紹了Python queue模塊攻略全解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12
  • Python繪圖之桃花盛開

    Python繪圖之桃花盛開

    這篇文章主要介紹了如何用python繪制桃花樹,幫助大家更好的使用python處理圖片,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08
  • Python 使用openpyxl處理Excel文件詳情

    Python 使用openpyxl處理Excel文件詳情

    這篇文章主要介紹了Python 使用openpyxl處理Excel文件詳情,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • python實現(xiàn)udp聊天窗口

    python實現(xiàn)udp聊天窗口

    這篇文章主要為大家詳細(xì)介紹了python實現(xiàn)udp聊天窗口,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • EM算法的python實現(xiàn)的方法步驟

    EM算法的python實現(xiàn)的方法步驟

    本篇文章主要介紹了EM算法的python實現(xiàn)的方法步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01

最新評論

沿河| 湾仔区| 阿城市| 陇西县| 铜梁县| 苗栗市| 尉犁县| 寿宁县| 离岛区| 台湾省| 图木舒克市| 石首市| 雷州市| 贵溪市| 分宜县| 梅河口市| 宿松县| 忻州市| 依安县| 太湖县| 博罗县| 含山县| 玉山县| 启东市| 新宾| 什邡市| 石门县| 社会| 新乡县| 新源县| 博客| 新昌县| 天水市| 贵南县| 商河县| 华宁县| 武邑县| 绩溪县| 体育| 綦江县| 民乐县|