使用 python/PIL 自动裁剪图像

2023-12-28

谁能帮我弄清楚我的图像自动裁剪脚本中发生了什么?我有一个带有大透明区域/空间的 png 图像。我希望能够自动裁剪该空间并保留必需品。原始图像有一个方形画布,最好是矩形,仅封装分子。

here's the original image: Original Image

通过谷歌搜索,我发现了据报告可以工作的 PIL/python 代码,但是在我手中,运行下面的代码会过度裁剪图像。

import Image
import sys

image=Image.open('L_2d.png')
image.load()

imageSize = image.size
imageBox = image.getbbox()

imageComponents = image.split()

rgbImage = Image.new("RGB", imageSize, (0,0,0))
rgbImage.paste(image, mask=imageComponents[3])
croppedBox = rgbImage.getbbox()
print imageBox
print croppedBox
if imageBox != croppedBox:
    cropped=image.crop(croppedBox)
    print 'L_2d.png:', "Size:", imageSize, "New Size:",croppedBox
    cropped.save('L_2d_cropped.png')

the output is this:script's output

任何更熟悉图像处理/PLI 的人都可以帮我解决这个问题吗?


Install Pillow https://pypi.org/project/Pillow/

pip install Pillow

并用作

from PIL import Image
    
image=Image.open('L_2d.png')

imageBox = image.getbbox()
cropped = image.crop(imageBox)
cropped.save('L_2d_cropped.png')

当您通过以下方式搜索边界时mask=imageComponents[3],您仅通过蓝色通道进行搜索。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 python/PIL 自动裁剪图像 的相关文章

  • 使用 python 进行串行数据记录

    Intro 我需要编写一个小程序来实时读取串行数据并将其写入文本文件 我在读取数据方面取得了一些进展 但尚未成功地将这些信息存储在新文件中 这是我的代码 from future import print function import se
  • python 中的代表

    我实现了这个简短的示例来尝试演示一个简单的委托模式 我的问题是 这看起来我已经理解了委托吗 class Handler def init self parent None self parent parent def Handle self
  • 如何正确地将 MIDI 刻度转换为毫秒?

    我正在尝试将 MIDI 刻度 增量时间转换为毫秒 并且已经找到了一些有用的资源 MIDI Delta 时间刻度到秒 http www lastrayofhope co uk 2009 12 23 midi delta time ticks
  • Django 模型在模板中不可迭代

    我试图迭代模型以获取列表中的第一个图像 但它给了我错误 即模型不可迭代 以下是我的模型和模板的代码 我只需要获取与单个产品相关的列表中的第一个图像 模型 py class Product models Model title models
  • Argparse nargs="+" 正在吃位置参数

    这是我的解析器配置的一小部分 parser add argument infile help The file to be imported type argparse FileType r default sys stdin parser
  • 如何创建一个语句来打印以特定单词开头的单词? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 如何在 python 中打印从特定字母开始的单词 而不使用函数 而是使用方法或循环 1 我有一个字符串 想要打印以 m 开头的单词 S
  • 使用 Python pandas 计算调整后的成本基础(股票买入/卖出的投资组合分析)

    我正在尝试对我的交易进行投资组合分析 并尝试计算调整后的成本基础价格 我几乎尝试了一切 但似乎没有任何效果 我能够计算调整后的数量 但无法获得调整后的购买价格有人可以帮忙吗 这是示例交易日志原始数据 import pandas as pd
  • 如何通过在 Python 3.x 上按键来启动和中断循环

    我有这段代码 当按下 P 键时会中断循环 但除非我按下非 P 键 否则循环不会工作 def main openGame while True purchase imageGrab if a sum gt 1200 fleaButton ti
  • 对图像块进行多重处理

    我有一个函数必须循环遍历图像的各个像素并计算一些几何形状 此函数需要很长时间才能运行 在 24 兆像素图像上大约需要 5 小时 但似乎应该很容易在多个内核上并行运行 然而 我一生都找不到一个有据可查 解释充分的例子来使用 Multiproc
  • Numpy 过滤器平滑零区域

    我有一个 0 及更大整数的 2D numpy 数组 其中值代表区域标签 例如 array 9 9 9 0 0 0 0 1 1 1 9 9 9 9 0 7 1 1 1 1 9 9 9 9 0 2 2 1 1 1 9 9 9 8 0 2 2 1
  • 奇怪的 MySQL Python mod_wsgi 无法连接到 'localhost' (49) 上的 MySQL 服务器问题

    StackOverflow上也有类似的问题 但我还没有发现完全相同的情况 这是在使用 MySQL 的 OS X Leopard 机器上 一些起始信息 MySQL Server version 5 1 30 Apache 2 2 13 Uni
  • Seaborn Pairplot 图例不显示颜色

    我一直在学习如何在Python中使用seaborn和pairplot 这里的一切似乎都工作正常 但由于某种原因 图例不会显示相关的颜色 我无法找到解决方案 因此如果有人有任何建议 请告诉我 x sns pairplot stats2 hue
  • 将 matplotlib 颜色图集中在特定值上

    我正在使用 matplotlib 颜色图 seismic 绘制绘图 并且希望白色以 0 为中心 当我在不进行任何更改的情况下运行脚本时 白色从 0 下降到 10 我尝试设置 vmin 50 vmax 50 但在这种情况下我完全失去了白色 关
  • 将 2D NumPy 数组按元素相乘并求和

    我想知道是否有一种更快的方法 专用 NumPy 函数来执行 2D NumPy 数组的元素乘法 然后对所有元素求和 我目前使用np sum np multiply A B 其中 A B 是相同维度的 NumPy 数组m x n 您可以使用np
  • 使用yield 进行字典理解

    作为一个人为的例子 myset set a b c d mydict item yield join item s for item in myset and list mydict gives as cs bs ds a None b N
  • 使用 PyTorch 分布式 NCCL 连接失败

    我正在尝试使用 torch distributed 将 PyTorch 张量从一台机器发送到另一台机器 dist init process group 函数正常工作 但是 dist broadcast 函数中出现连接失败 这是我在节点 0
  • 在Python中按属性获取对象列表中的索引

    我有具有属性 id 的对象列表 我想找到具有特定 id 的对象的索引 我写了这样的东西 index 1 for i in range len my list if my list i id specific id index i break
  • Elastic Beanstalk 中的 enum34 问题

    我正在尝试在 Elastic Beanstalk 中设置 django 环境 当我尝试通过requirements txt 文件安装时 我遇到了python3 6 问题 File opt python run venv bin pip li
  • 列表值的意外更改

    这是我的课 class variable object def init self name name alias parents values table name of the variable self name 这是有问题的函数 f
  • 您可以使用关键字参数而不提供默认值吗?

    我习惯于在 Python 中使用这样的函数 方法定义 def my function arg1 None arg2 default do stuff here 如果我不供应arg1 or arg2 那么默认值None or default

随机推荐

  • 应用程序传输安全策略要求使用安全连接

    我添加了NsAppTransportSecurity作为字典并添加了键NsAllowArbitaryLoads正如每个人所说 但它对我不起作用 我对项目进行了彻底的重建 但仍然出现同样的错误 应该这样做 NSAppTransportSecu
  • 如何将一个 amp-story-page 链接到另一个页面?

    所以 我目前正在使用 AMP amp story 来制作故事 我想知道如何放置一个从一个页面切换到另一页面的按钮 例如 使您从第 5 页转到第 8 页 而不是第 6 页 的按钮 目的是允许用户跳过一些内容 amp story 是否也允许隐藏
  • 为什么 tailwind 中只生成一些 css 类?

    我有一个项目 我使用 Django 作为 css 的后端和尾风 tailwind 没有给我任何错误 并且在我的文件中查找类 但不生成 css 它唯一适用的类是 bg blue 500 仅此而已 如果有人能想到为什么会发生这种情况或如何解决
  • DoubleAnimation.Completed 事件在情节提要结束时触发

    所以我有一个Storyboard它将依次运行多个动画 并非所有动画同时运行 并且在其中一些动画中我订阅了DoubleAnimation Completed事件 动画运行得很好 但是Completed动画的事件仅在整个事件触发一次Storyb
  • Tensorflow:将导入的图形操作应用于 2d 张量的每个元素

    有些问题回答了我的部分问题 但我无法将这些部分连接在一起 假设我有一个对仅包含 2 个元素的一维数组进行操作的图 input tf placeholder tf float32 2 name input 我想构建一个图表 它可以接收此类元素
  • 如何在不迁移的情况下将 Django 连接到外部数据库

    我想将我的 DjangoApp 连接到外部 MySQL 数据库 我不想迁移到这个表 我的意思是我不想创建新表 只是提取数据 我的问题是 如何做到这一点 如果我将此表添加到我的设置文件中的数据库 那么控制台会显示有关强制迁移的错误 你能给我推
  • 为什么 AWS Cognito 对 JWT 使用多个公钥?

    当我下载特定用户池的 JWT 集时 可在以下位置获取 https cognito idp https cognito idp region amazonaws com userPoolId well known jwks json JSON
  • 使用来自 python 2.4 的输入重定向运行 shell 命令?

    我想要实现的是启动以下 shell 命令 mysql h hostAddress u userName p userPassword databaseName lt fileName 在 python 2 4 脚本中 有一些类似的内容 cm
  • ASP.NET 全球化:Culture="auto" 页面指令导致中性文化崩溃?

    我遇到了使用内置全球化工具的 ASP NET 应用程序崩溃的情况 在具有 Culture auto 指令的 ASP NET 页面上 使用中性文化作为浏览器语言 例如 zh Hans 的用户将产生以下异常 文化 zh Hans 是一种中立文化
  • Scrapy hxs.select() 未选择所有结果

    我正在尝试通过scrapy来获取赔率here http www paddypower com football football matches premier league 目前只是尝试使用以下蜘蛛记录结果 def parse self
  • 复合 JS 关系访问

    我定义了 2 个模式对象 如下所示 用于 mongodb var User describe User function property name String property email String property passwor
  • OpenMP 分发中的 SECTIONS 指令如何工作?

    在OpenMP中使用时omp sections 线程是否会被分配到内部的块中sections 或者将每个线程分配给每个部分 When nthreads 3 pragma omp sections pragma omp section pri
  • 失踪的铁轨宝石

    我知道这个问题已经在这个网站上被问过多次 但在深入研究其他答案后 我仍然对如何解决这个问题一无所知 我刚刚从生产服务器中提取了 Rails 应用程序的副本 但出现以下错误 缺少 Rails 2 3 4 gem 请gem install v
  • 如何在 Flutter 中禁用 FlatButton 的启动突出显示?

    我有一个扁平按钮 我不希望单击按钮时突出显示 我尝试将飞溅颜色更改为透明 但这不起作用 这是我的 FlatButton 的代码 Widget button new Container child new Container padding
  • PHP 如何将数据追加到序列化数组中

    如果我有一个序列化数组 如何向其附加更多值 我应该先反序列化它 gt 添加数据然后再次序列化它吗 Yes function addItem serializedArray item a unserialize serializedArray
  • 为什么 golangticker.Stop() 在tickerTest1中不起作用?

    我知道Stop函数无法关闭通道 我只是对两个不同的结果感到困惑tickerTest1 and tickerTest2 package main import time log func tickerTest1 ticker time New
  • 如果我只有任务 ID,我可以获得 celery 任务的参数吗?

    如果我有原来的任务 我可以从中得到论据task request args 但是如果我只有任务 ID 有没有办法获取参数 看起来没有办法从AsyncResult对象 据我所知 没有办法重新创建任务 我想这样做是因为我有一个前端可以轮询后端以获
  • Clang 无法在 std::function 实例化中扩展参数包

    编译的代码片段std c 17作为唯一的编译器标志 使用 GCC 9 1 成功编译 Godbolt https godbolt org z QKJomx 使用 Clang 8 0 0 发出编译器错误 代码片段下方的错误 Godbolt ht
  • SQL Server 性能提示[重复]

    这个问题在这里已经有答案了 可能的重复 SQL WHERE 子句是否短路计算 https stackoverflow com questions 789231 is the sql where clause short circuit ev
  • 使用 python/PIL 自动裁剪图像

    谁能帮我弄清楚我的图像自动裁剪脚本中发生了什么 我有一个带有大透明区域 空间的 png 图像 我希望能够自动裁剪该空间并保留必需品 原始图像有一个方形画布 最好是矩形 仅封装分子 here s the original image 通过谷歌