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

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ì)遇到需要去除圖片黑色邊框的需求。這些黑色邊框可能來(lái)自掃描設(shè)備、截圖工具或其他圖像生成過(guò)程。手動(dòng)處理大量圖片既耗時(shí)又枯燥,今天我們就來(lái)實(shí)現(xiàn)一個(gè)自動(dòng)化的 PNG 圖片黑色邊框去除工具。

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

我們可以使用 Python 的 OpenCV 庫(kù)來(lái)實(shí)現(xiàn)這一功能。基本思路是通過(guò)圖像閾值處理找到非黑色區(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:
        # 沒(méi)有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"無(wú)法讀取圖片: {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ì)于沒(méi)有 alpha 通道的圖片,將其轉(zhuǎn)換為灰度圖并進(jìn)行閾值處理
  • 通過(guò)找到非零像素的坐標(biāo)來(lái)確定主體內(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)容居中且無(wú)冗余邊界

總結(jié)

通過(guò)使用 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)文章

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

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

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

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

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

    python 初始化一個(gè)定長(zhǎng)的數(shù)組實(shí)例

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

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

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

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

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

    Python queue模塊攻略全解

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

    Python繪圖之桃花盛開(kāi)

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

    Python 使用openpyxl處理Excel文件詳情

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

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

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

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

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

最新評(píng)論

江门市| 息烽县| 瑞昌市| 商都县| 黄梅县| 咸丰县| 永修县| 汾西县| 金昌市| 孝昌县| 泰州市| 凤庆县| 武平县| 中阳县| 白银市| 济源市| 东丰县| 昆明市| 乌拉特后旗| 襄汾县| 阆中市| 龙山县| 大厂| 织金县| 谷城县| 吴桥县| 和田县| 安福县| 丰原市| 进贤县| 余庆县| 澎湖县| 昆山市| 尤溪县| 汕头市| 甘孜| 五大连池市| 金湖县| 潢川县| 延川县| 永和县|