Python 从一组值中屏蔽图像像素

2024-04-27

提供带有标签的图像(像素的值对应于其标签)以及接受的标签列表,我尝试使用以下命令创建“蒙版”图像255如果像素标签被接受,则值,0否则。

我知道这是一种缓慢的方法,因为它以 python 速度迭代图像(但它很好地演示了这个想法):

mask = numpy.zeros(labels.shape[:2], dtype = "uint8")

for i in xrange(mask.shape[0]):
    for j in xrange(mask.shape[1]):
        if labels[i][j] in accepted:
            mask[i][j] = 255

我知道使用 python 切片和屏蔽要快得多,但我不知道如何组成复杂的条件。当我将像素一一接受的标签屏蔽时,我仍然获得了巨大的加速,如下所示:

for value in accepted:
    mask[labels == value] = 255

我能以某种方式制作一句台词做我想做的事吗?我的 python 知识很生疏(阅读:过去几年几乎没有 python),所以当我尝试使用我发现的一些示例来编写此内容时,这是我得到的最接近的:

mask[(labels in accepted).all()] = 255

在这种情况下,我收到以下错误:ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

我看过类似的问题(例如here https://stackoverflow.com/questions/13461153/how-can-i-iterate-over-image-pixels-in-a-faster-manner-in-python or here https://stackoverflow.com/questions/26445153/iterations-through-pixels-in-an-image-are-terribly-slow-with-python-opencv等等),但它们似乎都涵盖了值来自某个范围或低于/高于阈值 (

任何关于如何检查“是否是可接受的值中的值”的建议都会很棒。


与此同时,我找到了一个可以接受的速度解决我自己的问题的方法:

mask = numpy.zeros(labels.shape[:2], dtype = "uint8")
mask[numpy.in1d(labels, accepted).reshape(mask.shape)] = 255

它包括首先使用numpy.in1d https://docs.scipy.org/doc/numpy/reference/generated/numpy.in1d.html从中获取一个布尔数组labels数组,并检查哪些存在于accepted(Python 关键字“in”的逐元素函数)。

由于这显然必然返回一个一维数组,即使它可以应用于二维数组(它只是解开数组),所以我遵循使用reshape()使布尔数组的维度与mask.

最后,我使用这个布尔数组来索引所需的元素mask并将它们设置为所需的值。

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

Python 从一组值中屏蔽图像像素 的相关文章

  • 熊猫加入具有不同索引级别/日期时间的数据帧?

    嗨 我有两个 DataFrame 如下所示 dineType menuName unique columns date y m d
  • 来自多元 t 分布的样本 python

    我想知道Python中是否有一个从多元学生t分布中采样的函数 我有包含 14 个元素的均值向量 14x14 协方差矩阵和自由度 我想从这个 t 分布中采样一个向量 对于一维情况 我使用 stats t rvs df loc scale 并且
  • 打开文件路径在 python 中不起作用[重复]

    这个问题在这里已经有答案了 我正在编写一个数据库程序 personica 是我的测试主题 我通常在文件路径的位置有一个变量 但出于测试和演示的目的 我只有一个字符串 在我的计算机上的这个确切位置有一个文本文件 顺便说一句 因为我很偏执 所以
  • 以编程方式结束/退出粘合作业

    我正在使用 Glue 书签来处理数据 我的工作是每天安排的 但也可以 手动 启动 由于我使用书签 有时胶水作业可以在没有新数据要处理的情况下启动 然后读取的数据帧为空 在这种情况下 我想好好地结束我的工作 因为它没有什么关系 我试过 if
  • NLTK:包错误?朋克和泡菜?

    基本上 我不知道为什么会收到此错误 只是为了获得更多图像 这里有一个代码格式的类似消息 由于是最新的 该帖子的答案已经在消息中提到 Preprocessing raw texts LookupError Traceback most rec
  • 在 Python 中倾斜数组

    我有一个 2D 数组 我将使用它保存为灰度图像scipy misc toimage 在此之前 我想将图像倾斜给定角度 像这样进行插值scipy ndimage interpolation rotate 上图只是为了说明倾斜过程 我知道我必须
  • 我可以在pycharm中的断点处进入交互模式吗

    我是一个相当新的 Pycharm 3 用户 正在从事 django 项目 我可以在 pycharm3 中的断点处进入交互模式吗 这可能吗 当程序在断点处停止时 我尝试过工具 gt 打开调试命令行 但我没有看到控制台打开 我怎样才能让它发挥作
  • R.scale() 和 sklearn.preprocessing.scale() 之间的区别

    我目前正在将数据分析从 R 转移到 Python 当在 R 中缩放数据集时 我将使用 R scale 根据我的理解 它将执行以下操作 x mean x sd x 为了替换该函数 我尝试使用 sklearn preprocessing sca
  • LogRecord 没有预期的字段

    在使用 logging 模块的Python中 文档承诺LogRecord实例将具有许多属性 这些属性在文档中明确列出 然而 情况似乎并不总是如此 当我不使用日志记录模块的 basicConfig 方法时 下面的程序显示属性 asctime
  • Python3 - 如何将字符串转换为十六进制

    我正在尝试将字符串逐个字符转换为十六进制 但我无法在Python3中弄清楚它 在较旧的 python 版本中 我的以下内容有效 test This is a test for c in range 0 len test print 0x s
  • 无法使用 wxPython 打开在 folium 中生成的本地 HTML 文件

    我目前正在尝试将 GPS 坐标绘制为地图上的标记 并在 wxPython 中显示结果 我使用 folium 绘制坐标标记并生成 HTML 文件 import folium fmap folium Map 43 5321 172 6362 z
  • 自动创建带有文件输出的目录[重复]

    这个问题在这里已经有答案了 假设我想制作一个文件 filename foo bar baz txt with open filename w as f f write FOOBAR 这给出了一个IOError since foo bar不存
  • 在python中检测按下了哪些键

    我需要知道现在按下的是哪个键 我不想捕获一些特定的按键来触发事件或类似的事情 我想知道现在按下了哪些键并显示它们的列表 我还需要捕获特殊键 如 F1 F12 shift alt home windows 等 基本上是键盘上的所有键 我如何在
  • 在解析器/子解析器的开头使用 argparse.REMAINDER

    我想实现一个 arg 解析器 它允许我将单元测试作为子命令之一运行 盲目地将参数传递给 unittest main 例如 foo py unittest args to pass to unittest main 以及其他子命令 foo p
  • AppEngine 警告 - OpenBLAS 警告 - 无法确定该系统上的 L2 缓存大小

    我尝试在 GC AppEngine 上部署应用程序 部署过程中没有错误 但应用程序无法运行 仅显示加载页面 日志中唯一一个奇怪的原始日志 OpenBLAS WARNING could not determine the L2 cache s
  • 启动客户端时,代码要求提供电话/机器人令牌

    使用 Telethon 库运行我的第一个代码时 它要求提供机器人令牌 这是实际的代码 from telethon import TelegramClient events sync api id 1234567 api hash xxxxx
  • 使用 Python 获取 Youtube 数据

    我正在尝试学习如何分析网络上可用的社交媒体数据 我从 Youtube 开始 from apiclient errors import HttpError from outh2client tools import argparser fro
  • 内置模块位于哪里?

    我尝试查找列出的所有目录sys path但我找不到任何builtins py文件 那么它在哪里呢 从字面上看 该模块内置于 python 解释器中 gt gt gt import builtins gt gt gt builtins
  • Pandas 数据框可对多列和要列出的值进行字典

    我有一个数据框 id key a1 1 a2 1 a3 1 a4 2 a5 2 a6 3 我想创建一本字典key作为机器号 并且id列作为列表 like 1 a1 a2 a3 2 a4 a5 3 a6 我可以先使用 groupby 然后再使
  • 了解客户端文件的对象 URL 以及如何释放内存

    我在用createObjectURL获取本地图像文件的引用 URL 当我完成文件 图像后 我打电话revokeObjectURL释放该内存 一切对我来说都很好 但我只是想确保我释放了我能释放的所有内存 我检查后出现了我的担忧chrome b

随机推荐

  • 使用 bitbake 为 BBB 构建 .dtbo 覆盖

    我使用内核 linux ti staging 4 14 和自定义设备树为我的 BBB 构建了 yocto 发行版 rocko 由于我需要将一个旧项目从 Debian 移植到 Yocto 因此我还需要在内核中启用 UIO 功能 这也可以正常工
  • Eclipse XSD 编辑器

    如何启动或安装 Eclipse XSD 编辑器 根据this http wiki eclipse org index php Introduction to the XSD Editor看来它应该开箱即用 我创建了XMLExamples项目
  • Python Mysql 连接器未获取新内容

    我制作了一个简单的 python 脚本 它每 x 秒检查一次 mysql 表并将结果打印到控制台 我使用 MySQL 连接器驱动程序 但是 运行脚本仅打印初始值 我的意思是 如果我在脚本运行时更改数据库中的值 脚本不会注册它 并且它会继续写
  • Google Cloud SQL:SQLSTATE [HY000] [2013]在“读取初始通信数据包”时丢失与 MySQL 服务器的连接,系统错误:0

    自从我的 Google Cloud SQL 实例宕机后 我感到绝望 我昨天可以毫无问题地连接到它 但从今天早上开始我无法以任何方式连接到它 它会产生以下错误 数据库服务器返回此错误 SQLSTATE HY000 2013 在 读取初始通信数
  • Pygame 让对象追逐光标

    过去几个小时一直在做这个 试图制作一个小程序 其中图像追逐光标 到目前为止 我已经设法使图像直接位于光标上方并沿着该方向移动 然而 我需要的是图像真正 追逐 光标 因此它需要最初远离光标 然后在它后面运行 直到它位于鼠标之上 基本上 我遇到
  • Applescript:修剪空格和回车线

    我编写了一个 AppleScript 它从用逗号分隔的文本文件中返回一个随机字符串 set some file to Macintosh HD Users Zade Library Application Support Notationa
  • 如何禁用 yii2 ActiveFrom dropDownList 中的一项?

    Yii2 活跃形式 我想禁用选项2 gt 2 有办法做到吗 您可以使用 选项 键为下拉列表中的所有项目添加属性 假设您想禁用第二项 在文档中 http www yiiframework com doc 2 0 yii helpers bas
  • “没有为 JavaScript 文件指定有效规则”是什么意思?

    我有一个使用以下命令创建的 React Typescript create react app my app scripts version react scripts ts 它编译得很好 但每次我看到此消息或警告时 No valid ru
  • 如何通过单击 Android 中的 ImageView 从一个片段移动到另一个片段?

    我有一个图像视图 我想通过单击 Imageview 从一个片段移动到另一个片段 就像我们可以使用从一个活动移动到另一个活动一样 Intent i new Intent MainActivity this SecondActivity cla
  • 使用 CoreMotion 在后台获取加速度计数据

    尽管这个问题的解决方案看似正确 但我无法在后台接收加速度计数据iPhone 上的 Nike GPS 如何在后台接收加速度计更新 https stackoverflow com questions 8716466 how nike gps o
  • Python 集合上的迭代顺序

    我正在解析两个大文件 GB 大小顺序 每个文件包含keys以及对应的values Some keys在两个文件之间共享 但对应的不同values 对于每个文件 我想写入一个新文件keys 以及对应的values with keys 代表 f
  • 无法访问视图内的 Blade 组件变量

    我在 Laravel 中遇到了这个非常奇怪的问题 我遇到一个问题 我的组件视图之一无法读取其类中定义的变量 这有点奇怪 因为我的项目中运行了几个组件 除了这个之外 它们都工作正常 所以我创建了一个新的 Laravel 项目来测试一些东西 想
  • 获取PDF文件中的超链接列表[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一个 pdf 文件 我需要找到该文件中所有可用的超链接 然后对这些链接进行更改 我正在使用 C 我不想使用第三方工具 您可以使用i
  • 字符串替换数据框中的 ®、°F 等 UTF 特殊字符

    我想将数据帧所有列中的特殊字符 例如 和 F 替换为 html 代码 special char lt function df df gt mutate all funs str replace all x pattern replaceme
  • Rails 控制台在 Windows 中失败并显示“切换到检查模式”

    我创建了一个 Rails 项目rails new foo then cd foo 然后运行rails c 然后我收到这样的消息 DL is deprecated please use Fiddle Loading development e
  • 在单元测试中使用SpringRunner可以吗?

    我们正在与我的同事争论这种方法 他们说仅在集成或功能级别上使用 SpringRunner 问题是在下面的级别中使用它有什么优点和缺点 例如我有简单的豆 public class RewardDurationCalculator privat
  • 连接到远程服务器上托管的 docker

    如何使用 python 连接到远程 docker 主机 gt gt gt from docker import Client gt gt gt cli Client base url tcp 52 90 216 176 2375 gt gt
  • 如何在 Xcode 8.0 中安装 Alamofire 4.0

    我正在使用更新的 Xcode 8 0 如何使用 cocoa pod 安装 alamofire 4 0 我试过这个https github com Alamofire Alamofire https github com Alamofire
  • 组件返回故障代码:0x805e0006 错误

    下面的 JQueryget call var doc root document location hostname 8082 var fw script doc root sites MyScripts fw2 php var langp
  • Python 从一组值中屏蔽图像像素

    提供带有标签的图像 像素的值对应于其标签 以及接受的标签列表 我尝试使用以下命令创建 蒙版 图像255如果像素标签被接受 则值 0否则 我知道这是一种缓慢的方法 因为它以 python 速度迭代图像 但它很好地演示了这个想法 mask nu