2 个像素之间的距离

2023-12-05

我来自软件开发,对图像处理很陌生。 我尝试获取图像中两个像素之间的距离,该图像是形状 (100, 100, 3) 的 numpy 数组。

例如,我想找到图像中蓝色像素 (0, 0, 255) 和红色像素 (255, 0, 0) 之间的距离,我尝试使用 for 循环或 np.where() ...但是没有成功。 距离可能是图像中两个索引之间的某种差异(这些颜色的像素可能更多,因此至少是图像中第一个遇到的像素)

知道怎么做吗?

编辑: 我正在捕获屏幕的一部分,如下所示:

screen = np.array(pyautogui.screenshot(region=(80,120,100,100)))

现在我想找到图像中蓝色的像素和红色的像素以及它们之间的距离


让我们从测试图像开始。它是 400x300 像素的灰色 (192),其中:

  • 20,10 处的红色 3x3 正方形,
  • 300,200 处的蓝色 3x3 正方形

enter image description here

现在执行以下操作:

import numpy as np
import PIL
import math

# Load image and ensure RGB - just in case palettised
im=Image.open("a.png").convert("RGB")

# Make numpy array from image
npimage=np.array(im)

# Describe what a single red pixel looks like
red=np.array([255,0,0],dtype=np.uint8)

# Find [x,y] coordinates of all red pixels
reds=np.where(np.all((npimage==red),axis=-1))

这给出:

(array([10, 10, 10, 11, 11, 11, 12, 12, 12]),
 array([20, 21, 22, 20, 21, 22, 20, 21, 22]))

现在我们来处理蓝色像素:

# Describe what a single blue pixel looks like
blue=np.array([0,0,255],dtype=np.uint8)

# Find [x,y] coordinates of all blue pixels
blues=np.where(np.all((npimage==blue),axis=-1))

这给出:

(array([200, 200, 200, 201, 201, 201, 202, 202, 202]),
 array([300, 301, 302, 300, 301, 302, 300, 301, 302]))

所以现在我们需要从第一个红色像素到第一个蓝色像素的距离

dx2 = (blues[0][0]-reds[0][0])**2          # (200-10)^2
dy2 = (blues[1][0]-reds[1][0])**2          # (300-20)^2
distance = math.sqrt(dx2 + dy2)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2 个像素之间的距离 的相关文章

  • 使用 Python 在 Google Cloud Storage 存储桶中创建/上传新文件

    如何使用 Python 和可用的客户端库在 Google Cloud Storage 中创建新的空文件 或者如何使用 blob 函数 upload from filename 将新文件上传到选定的存储桶 要初始化 blob 对象 我们应该在
  • Python 按照层次结构按多个分隔符分割字符串

    我只想根据多个分隔符 例如 and 和 按顺序分割字符串一次 例子 121 34 adsfd gt 121 34 adsfd dsfsd and adfd gt dsfsd adfd dsfsd adfd gt dsfsd adfd dsf
  • Spyder 导入模块出错

    我正在尝试在 Spyder 中使用 sklearn 一开始 当我尝试导入它时 我收到 ImportError No module named sklearn 然后我用 PYTHONPATH 管理器设置 PATH 然后使用工具菜单中的 更新模
  • 使用 Pymongo 从 Windows 连接到 AWS 实例上的 MongoDB

    此行反复抛出错误 client MongoClient ec2 12 345 67 89 us east 2 compute amazonaws com 27017 ssl True ssl keyfile C mongo pem 由于显而
  • OpenCV - 我需要将彩色图像插入黑白图像并且

    我用以下代码将黑白图像插入彩色图像 没问题 face grey cv cvtColor face cv COLOR RGB2GRAY for row in range 0 face grey shape 0 for column in ra
  • 检测/删除 Python 2 + GTK 中不成对的代理字符

    在Python 2 7中我可以成功转换Unicode字符串 abc udc34xyz 转换为 UTF 8 结果是 abc xed xb0 xb4xyz 但是当我将 UTF 8 字符串传递给例如时 pango parse markup or
  • 在 vim 折叠线中语法高亮 Python

    我发现代码折叠 http en wikipedia org wiki Code folding帮助我更好地组织我的文件 因此 在我的底部 vimrc 我启用vim代码折叠 http vimdoc sourceforge net htmldo
  • 如何在Python中求和

    我想知道如何在 python 中表示总和而不需要像这样的循环here http docs scipy org doc scipy reference tutorial optimize html 我们有 def rosen x The Ro
  • 使用 python 只读取 Excel 中的可见行

    我想只读取 python 中 Excel 工作表中的可见行 输入 Excel表 所以当我过滤时 作为 python 中的输出 在本例中我将仅获得可见数据 1 行 这是我的代码 from openpyxl import load workbo
  • python:是否有用于对输入流进行分块的库函数?

    我想对输入流进行分块以进行批处理 给定一个输入列表或生成器 x in 1 2 3 4 5 6 我想要一个能够返回该输入块的函数 说 如果chunk size 4 then x chunked 1 2 3 4 5 6 这是我一遍又一遍地做的事
  • 如何绘制多类分类器的精度和召回率?

    我正在使用 scikit learn 我想绘制精度和召回曲线 我正在使用的分类器是RandomForestClassifier scikit learn 文档中的所有资源都使用二元分类 另外 我可以绘制多类的 ROC 曲线吗 另外 我只找到
  • PyCharm - 如何挂起所有线程

    我们使用 PyCharm 5 0 1 进行多线程调试 当它在断点处停止时 只有特定线程停止 而所有其他线程继续 这使得 冻结时刻 和检查参数值以及其他线程的当前状态变得困难 当其中一个线程在断点处停止时 是否可以挂起所有线程 这在最新的 P
  • 如何在 Sublime 2 REPL Mac 中运行 Python 3

    我的问题如下 我安装了 sublime 2 和 sublime repl 插件 一切正常 我唯一需要的是更改在控制台内置的 sublimerepl 上运行的 python 版本 我的意思是 我有 python 2 7 5 预先安装了 mav
  • 如何使用 pygame.mixer 重复音乐?

    我创建了以下使用 pygame mixer 播放 mp3 音乐的代码 然而 音乐不会重复 有什么想法可以让音乐重复播放吗 这是代码 playlist list playlist append put music here mp3 playl
  • Scrapy 抓取并跟踪 href 中的链接

    我对 scrapy 很陌生 我需要从 url 的主页跟踪 href 到多个深度 再次在 href 链接内我有多个 href 我需要遵循这些href 直到到达我想要抓取的页面 我的页面的示例 html 是 初始页 div class page
  • Pip 突然使用了错误版本的 Python

    在 os x 上使用 pip 时遇到一个奇怪的问题 据我所知 快速查看我的 bash history 似乎可以确认 我最近没有对我的配置进行任何更改 唉 pip 命令似乎突然使用了与以前不同的 python 版本 到目前为止 我使用命令 p
  • 更改 DCT 系数

    我决定使用 libjpeg 作为处理 jpeg 文件的主要库 我已阅读 libjpg txt 文件 我很高兴该库允许以方便的方式读取 写入 DCT 系数 由于编写自己的解码器需要很长时间 我的工作与无损嵌入相关 目前我需要从文件中读取 DC
  • 如何在 C# 中调整图像大小同时保持高质量?

    我从这里找到了一篇关于图像处理的文章 http www switchonthecode com tutorials csharp tutorial image editing saving cropping and resizing htt
  • 在至少 7 天内连续三天登录该产品的用户

    我有一个用于用户参与的数据框 df 如下所示 time stamp user id 2013 01 01 10 05 23 1 2013 01 03 16 35 23 1 2013 01 06 11 06 35 1 2013 01 10 1
  • 通过 ManyToManyField = Value 对 django 查询集进行排序

    如果有一些模型 例如 class Tag models Model name models CharField class Thing models Model title models CharField tags models Many

随机推荐

  • 如何将mongodb文档中的所有数组元素更改为某个值? [复制]

    这个问题在这里已经有答案了 假设我有以下文档 id ObjectId 5234cc89687ea597eabee675 code xyz tags school book bag headphone appliance qty size S
  • 从aspx网页读取xml

    我们必须从 aspx 页面读取数据 当我们使用查询字符串调用页面时 它会返回一个 xml 文档 其中包含与查询字符串匹配的数据 我们有一个与我们返回的 xml 相匹配的 XSD 我想我们可以从http响应中读取xml文档 这行得通吗 我们怎
  • 从服务访问 UI 线程处理程序

    我正在 Android 上尝试一些新的东西 我需要访问 UI 线程的处理程序 我知道以下几点 UI线程有自己的处理程序 和活套 任何消息都会被放置 进入UI的消息队列 线 Looper 获取事件 并将其传递给处理程序 处理程序处理消息并 将
  • 确保 MATLAB 不会重新计算符号表达式

    我正在构建 我的第一个 MatLab 程序 它需要对方程进行符号微分 然后多次使用此解决方案 使用不同的数字输入 我不希望它每次需要输入一组新的数值时都重新计算符号微分 这可能会大大增加运行该程序所需的时间 鉴于其本质 数字优化器 这可能已
  • MPDF 电子邮件附件发送空白 PDF

    我已经使用 mpdf 成功生成了 PDF 我已通过下载 PDF 进行了验证 但是 当我将 PDF 作为电子邮件附件发送时 我收到 Adob e Reader 的空白 PDF 并显示 内存不足 错误 下面是我的代码
  • 为什么 dart 错误地推断出我的泛型参数类型?

    当我明确地将 mySet 变量等同于 int 集文字时 我似乎无法理解为什么 mySet 变量被推断为具有动态参数类型的通用集 那么这个结果合乎逻辑吗 还是 dart 确实未能推断出泛型集参数类型 main Set mySet 1 2 3
  • Xamarin + Android + 绑定 YouTube 视频播放器编译错误

    我希望将 YouTubeAndroidPlayerApi jar 绑定到我的 Xamarin Android 项目中 我已在 Jars 文件夹下添加了 YouTubeAndroidPlayerApi jar 但我的项目无法编译 错误 不要覆
  • 仅通过意图共享到 LinkedIn 的类名称

    我目前正在 Android 应用程序中为精选的流行平台创建直接意图以共享一些文本 我目前正在尝试获得与 LinkedIn 合作的直接意向 我目前有一个为 Twitter 工作的直接意图 如下所示 shareIntent new Intent
  • 在 Eclipse 中运行单个 JUnit 测试

    如果我有一个包含多个测试的测试套件 当我尝试从代码编辑器的上下文菜单或 JUnit 视图运行单个单元测试时 它似乎坚持始终运行整个套件 而不是单次测试 有没有办法禁用更改此行为 以便我可以要求运行该测试 并且仅运行该测试 在包资源管理器中展
  • 我无法让这个 mysql join 查询产生所需的结果

    三个表的结构 Booking CREATE TABLE booking bookingID int 11 NOT NULL AUTO INCREMENT receipt no int 11 NOT NULL client varchar 3
  • 无法隐式初始化 std::function

    我编写了这个函子来执行and手术 unary functor performs template
  • 将只读docker卷的变化反映到容器中?

    我有一个配置文件在运行时使用只读卷注入到 Docker 中 因此容器无法更改配置文件的内容 但主机可以 这个想法是向容器内的进程发送 SIGHUB 以重新加载任何配置更改 然而 Docker 似乎无法检测到配置文件的任何更改 并且似乎看到了
  • 工具栏在 RecyclerView 滚动条上留下空白并隐藏

    我试图在 RecyclerView 滚动条上隐藏我的工具栏 到目前为止它似乎已经隐藏了 但它留下了一个白色的空白 我很确定这与我的 MainActivity 布局和 FrameLayout 中的片段的叠加有关 这是我的activity ma
  • @OneToMany List<> 与 Set<> 区别

    如果我使用的话有什么区别吗 OneToMany public Set
  • 在 OS X 上保留内存

    相当于 Windows 的是什么VirtualAlloc在 OS X 中 也就是说 我如何保留一个连续的地址空间而不实际提交它 然后稍后提交它的块 Thanks Alex The mmap 函数 调用MAP ANON MAP PRIVATE
  • Chrome 扩展程序可在显示文本之前替换网页和 Facebook 帖子中的文本

    我正在开发一个 Chrome 扩展程序 它可以替换网页文本中的指定字符串或正则表达式 总体来说效果很好 但有两个问题我想解决 1 在文本替换发生之前 显示原始的 未更改的网页文本 2 文本替换不会影响滚动到页面底部后动态加载的 Facebo
  • 当我使用 JavaScript Fetch API 发送多部分表单数据时,FastAPI 返回“错误 422:无法处理的实体”

    在发送一些简单的内容时 我在使用 Fetch API JavaScript 方法时遇到一些问题formData像这样 function register var formData new FormData var textInputName
  • 如何在 Plotly 中循环创建子图,其中每个子图上都有几条曲线?

    我已经在下面编写了嵌套循环来成功生成 21 个图表 例如 每个国家一个图表德国天然气 奥地利天然气公司 dfs 是一个字典 以 21 个国家名称为键 以各自的储气 dfs 作为值 for country in list dfs storag
  • 实体框架代码优先 - 无法在对象“db”中插入重复键

    我首先在我的一个项目中使用新的 EF 代码 并且收到一个奇怪的错误 我的模式是 abstract class Member public virtual int MemberId some other stuff class User Me
  • 2 个像素之间的距离

    我来自软件开发 对图像处理很陌生 我尝试获取图像中两个像素之间的距离 该图像是形状 100 100 3 的 numpy 数组 例如 我想找到图像中蓝色像素 0 0 255 和红色像素 255 0 0 之间的距离 我尝试使用 for 循环或