使用 Python/PIL 从图像中删除背景颜色

2023-11-22

我一直在努力让它发挥作用,但确实遇到了麻烦,所以非常感谢您的帮助。

使用下面的代码,我想将具有指定 RGB 值的特征更改为白色,并将图像中的所有其他特征更改为黑色(即基本上从图像中提取特征。不幸的是,尽管我可以将我想要的特征' extract' 很好,当我尝试删除背景颜色时(我一直在尝试使用

mask2 = ((red != r1) & (green != g1) & (blue != b1))
data[:,:,:4][mask2] = [rb, gb, bb, ab]

但这似乎选择了除红色 == r1 或绿色 == g1 等像素之外的任何像素,给我留下了一个非常“嘈杂”的背景图像。)有谁知道一种方法来逐字提取具有指定 RGB 值的这些像素,或者重新着色背景像素的更好方法?

Thanks

import numpy as np
from PIL import Image

im = Image.open('/home/me/nh09sw.tif')
im = im.convert('RGBA')
data = np.array(im)

r1, g1, b1 = 246, 213, 139 # Original value
rw, gw, bw, aw = 255, 255, 255, 255 # Value that we want to replace features with
rb, gb, bb, ab = 0, 0, 0, 255 #value we want to use as background colour

red, green, blue, alpha = data[:,:,0], data[:,:,1], data[:,:,2], data[:,:,3]

mask = ((red == r1) & (green == g1) & (blue == b1))
data[:,:,:4][mask] = [rw, gw, bw, aw]

im = Image.fromarray(data)

im.save('/home/me/nh09sw_recol.tif')

使用 np.all() 沿第三轴进行比较。

import numpy as np
from PIL import Image

im = Image.open('my_file.tif')
im = im.convert('RGBA')
data = np.array(im)
# just use the rgb values for comparison
rgb = data[:,:,:3]
color = [246, 213, 139]   # Original value
black = [0,0,0, 255]
white = [255,255,255,255]
mask = np.all(rgb == color, axis = -1)
# change all pixels that match color to white
data[mask] = white

# change all pixels that don't match color to black
##data[np.logical_not(mask)] = black
new_im = Image.fromarray(data)
new_im.save('new_file.tif')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Python/PIL 从图像中删除背景颜色 的相关文章

随机推荐

  • 从日期 PHP 获取周数(一年中)

    我想确定一个日期并算出它的周数 到目前为止 我有以下内容 它返回 24 而它应该是 42 数字颠倒是错误还是巧合 或者我已经快到了 今天使用PHPDateTime对象更好
  • 如果输入为空,jQuery 输入事件不会触发

    我有一个 jQuery 事件处理程序 它对以下内容中的每个更改做出反应
  • 当键盘处于活动状态时,如何避免背景图像缩小?

    我想要一个带有文本输入的背景图像 但我不知道应该使用哪个小部件来避免背景图像在键盘处于活动状态时缩小 在这里您可以找到问题和我的代码的两个屏幕截图 class MyApp extends StatelessWidget override W
  • 是否可以使用小数分隔符强制 Floattostr/Strtofloat 函数使用小数点

    目前 我将小数分隔符设置为 在每个使用这些函数的过程中 在程序开始时进行全局设置会容易得多 但我发现 Delphi 似乎会定期将其设置回当前区域设置 我需要确保所有转换都使用小数点 无论程序在哪个国家 地区使用 因为这是此类程序的标准 并且
  • Laravel 5 POST 路由到索引而不是存储

    我正在开发一个 Laravel 5 RESTful API 它似乎没有正确路由 POST 请求 这是我的routes php Route group array prefix gt api v1 function Route resourc
  • XAMPP 中的 phpMyAdmin 出现“配置中定义的 controluser 连接失败”

    我刚刚在 Windows XP 计算机上安装了 XAMPP 但收到一条错误消息 配置中定义的 controluser 连接失败 在安装 XAMPP 之前 我安装了一个 MySQL 数据库并且它有一个密码 我更改了 MySQL 的密码并将其放
  • 如何创建 custom.css 来覆盖 Bootstrap 4 alpha 6 中的变量

    我正在尝试自定义 Bootstrap 4 alpha 6 主题 我想将设置从 variable scss 文件复制到 custom scss 进行覆盖 但我在源代码中没有找到 custom scss 文件 如何在我的项目中添加这个 cust
  • 在 Linux Redhat/CentOS 上为 msodbcsql17 安装 unixODBC >= 2.3.1

    我尝试在使用 CentOS RedHat Linux 的 AWS EC2 上安装 msodbcsql17 这些是我遵循的来自 Microsoft 的步骤 LINK sudo su Download appropriate package f
  • [caffe]:检查失败:检查失败:hdf_blobs_[i]->shape(0) == num(200 vs. 6000)

    我有训练并将数据标记为 data mat 我有 200 个训练数据 包含 6000 个特征 标签为 1 1 已保存在 data mat 中 我正在尝试将数据转换为 hdf5 并使用以下命令运行 C affe load data mat hd
  • AVAudio播放器速率

    所以我尝试在 iOS 5 1 1 中以不同的速率播放声音文件 但完全没有运气 到目前为止 我已经尝试设置 AVAudioPlayer 的速率 player AVAudioPlayer alloc initWithContentsOfURL
  • Rails:违反外键约束

    我有三个模型 Book genre BookGenre 以下是关系 class BookGenre lt ActiveRecord Base belongs to book belongs to genre end class Book l
  • Spark Dataframe的分区数量

    谁能解释一下将为 Spark Dataframe 创建的分区数量 我知道对于 RDD 在创建它时我们可以提及分区的数量 如下所示 val RDD1 sc textFile path 6 但是对于 Spark 数据帧 在创建时看起来我们没有像
  • Scala:强制 A 不是 B 的子类型

    我试图根据参数是否扩展给定的类来重载方法 并且遇到了一些麻烦 使用迈尔斯 萨宾 Miles Sabin 的方法 我生成了以下代码 object ExtendedGenericTypes trait lt lt A B Encoding fo
  • IIS 7 上的 ASP.net MVC 返回空白页面

    我在将 ASP net MVC 2 RC 2 应用程序部署到我的生产环境时遇到一些问题 我让它在开发和测试中都运行良好 主要区别似乎是生产盒尚未升级到 IIS 7 5 当我访问该网站时 我只是看到一个空白页面 如中所述我在 IIS 上部署
  • bootstrap 4 modal-backdrop样式(特定modal)

    我想知道如何更改特定模态的模态背景颜色 不是模态的背景颜色 如果我使用 shown bs modal 并有一些延迟 则可以更改颜色 但我想立即更改背景颜色 希望有人可以帮忙 谢谢 div class modal fade div class
  • 群组成员支持的协议与现有成员的协议不兼容

    我面临与卡夫卡相关的问题 我正在使用当前的服务 Producer 将消息发送到 Kafka 主题 events 该服务正在使用kafka 2 12 v1 0 0 用 Java 编写 我正在尝试将其与示例项目集成spark streaming
  • CSS3 中计算操作数的 LESS 转义中的空白保留

    我想用 LESS 表达以下 CSS a min height calc 2em 4px 因此 为了防止 LESS 尝试计算 我使用 LESS 编写了表达式转义语法 a min height calc 2em 4px 然而 LESS 的缩小引
  • 使用 linq to xml 遍历 xml 树中的每个元素

    我想遍历 xml 中的每个元素和属性并获取名称和值 而无需提前知道元素的名称 我什至有一本关于 linq to xml with C 的书 它只告诉我当我已经知道元素的名称时如何查询以获取元素的值 下面的代码只提供了最高级别的元素信息 我还
  • 将 Enumerable.Range 转换为字符串列表

    在 Linq 中 如何将 Enumerable Range 1 31 转换为字符串列表 var list Enumerable Range 1 31 Select n gt n ToString ToList
  • 使用 Python/PIL 从图像中删除背景颜色

    我一直在努力让它发挥作用 但确实遇到了麻烦 所以非常感谢您的帮助 使用下面的代码 我想将具有指定 RGB 值的特征更改为白色 并将图像中的所有其他特征更改为黑色 即基本上从图像中提取特征 不幸的是 尽管我可以将我想要的特征 extract