如何在 Julia 中将 Float64 矩阵转换为 RGB 通道矩阵?

2023-12-23

假设我有以下矩阵:

img = [
 0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0
 0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0
 0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0
 0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0
 0.0  0.5  1.0  1.0  1.0  1.0  1.0  1.0  0.5  0.0  0.0  0.0
 0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0
 0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0
 0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0
 0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0
 0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0
]

我想将其转换为矩阵,其中每个元素将值表示为 RGB 通道。我想那里应该进行一些翻译。例如,用于表示的等效 RGB 通道是什么0.0?你可能会说这不可能发生或不可能。但我可以将相同的矩阵转换为黑白图像:

julia> using Images
julia> Gray.(img)

这显示了一个图像作为输出。所以如果它能翻译0.0变成黑色和1.0通过灰色通道变成白色,然后我可以期望存在与 RGB 通道等效的值。

Q1:我的预期产出是多少?
Ans:像这样的矩阵(这里是任意数字):

10×12 Array{RGB{Float64},2} with eltype RGB{Float64}:
 RGB{Float64}(0.412225,0.412225,0.412225)     …  RGB{Float64}(0.755344,0.755344,0.755344)
 RGB{Float64}(0.0368978,0.0368978,0.0368978)     RGB{Float64}(0.198098,0.198098,0.198098)

Q2:为什么我需要这个?
Ans:整个想法是能够改变某些像素的颜色。首先,我有一个矩阵Float64元素类型。然后我想用以下方法实现等效矩阵RGB{Float64}元素类型将其中一些值更改为其他值(以绿色或其他颜色显示像素。),然后查看图片以检查最终图像。

Q3:我试过什么?
Ans:我尝试了一种简单的方法,但失败了:

julia> RGB.(img)

julia> typeof(RGB.(img))
Matrix{RGB{N0f8}} (alias for Array{RGB{Normed{UInt8, 8}}, 2})

该命令渲染图像。它没有给我预期的矩阵。然后我尝试了这个:

julia> channelview(RGB.(img))
3×10×12 reinterpret(reshape, N0f8, ::Array{RGB{N0f8},2}) with eltype N0f8:
[:, :, 1] =
 0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0
 0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0
 0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0
;;; …

[:, :, 12] =
 0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0
 0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0
 0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0

但这不是我所期望的。

更新: 现在尝试另一种方法:

julia> convert(Array{RGB, 2}, img)
# Just renders the result and doesn't show the matrix

julia> typeof(convert(Array{RGB, 2}, img))
Matrix{RGB} (alias for Array{RGB, 2})

另外,我尝试过collecting它,但它导致了相同的结果。

附:我需要它在VScode,而不是 REPL。


Issue solved by disabling the plot pane: enter image description here

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

如何在 Julia 中将 Float64 矩阵转换为 RGB 通道矩阵? 的相关文章

随机推荐

  • 当拉取请求更改时取消操作运行

    对于我的项目 我有一个相当长的 github 操作 当创建新的拉取请求时会触发该操作 这些是我使用的触发器 on pull request types opened ready for review labeled 此操作被定义为我的拉取请
  • 为什么 HttpApplication 构造函数被多次调用

    有人可以解释为什么自定义类的构造函数派生自Http应用程序应用程序启动时被调用多次 我的代码结构如下 My Globalglobal asax 中的类派生自定制应用程序 class The 定制应用程序类源自Http应用程序 class T
  • 如何从 CXF/JAX-RS 中的 JSON 响应中删除命名空间前缀?

    我有 CXF 使用 JAX RS 创建的以下响应 ns1 CustomerInformationResponse xsi type ns1 CustomerInformationResponse ns2 code SUCCESS ns1 c
  • 如何更改函数引用的类型?

    Java8 允许我使用方法声明作为任何接口的实现 只要它只包含一个方法 然而 一旦定义 类型就不能更改 My code import java util function IntConsumer public class A interfa
  • boost::asio::yield_context:意外的forced_unwind异常

    我正在尝试为 boost asio 编写自定义异步函数 如下所述here https stackoverflow com questions 24497881 boostasiospawn yield as callback 但是我得到了
  • 如何在 Android 10 中从服务启动 Activity

    我从服务开始活动直到 android P 但是从 android10 谷歌保留了一项限制 即活动不能从后台启动 https developer android com guide components activities backgrou
  • 使用连接字符串时如何设置 knex 连接 ssl 选项

    当我使用连接字符串初始化 knex 时 如何将连接的 ssl 属性设置为 true 同样如何将debug设置为true 我通常会传入一个连接对象 但在这种情况下 我必须使用环境变量中的连接字符串 var database client pg
  • 检测页面上是否显示警报或确认

    有没有办法使用 JavaScript 或 jQuery 来检测是否显示确认框或警报框 如果您想在以下情况下运行一些代码alert 火灾 你可以尝试这样的事情 我只在 Chrome 中进行了测试 所以我不确定浏览器是否支持 Example h
  • C++ 不会安装在 Netbeans 11.0 中

    我是编程初学者 想了解更多关于 C 的知识 我安装了 Netbeans 因为它说它支持 Java 我目前正在学校学习基础知识 和 C 我想出于个人兴趣学习 但是当我尝试创建一个新项目时 我找不到C 所以我按照教程并最终尝试安装该插件 问题是
  • 什么时候在 ThreadPoolExecutor 中指定单独的核心和最大池大小是个好主意?

    我试图理解为 Java 5 的 ThreadPoolExecutor 指定单独的核心和最大池大小的要点 我的理解是 线程数只有在队列已满时才会增加 这似乎有点晚了 至少对于较大的队列 难道我不乐意为任务分配更多数量的线程 在这种情况下我可能
  • 迷失在 NSButton 类型和替代图像中

    我想要一个NSButton带有图像和备用图像 按下按钮时应显示备用图像 我还想通过代码显示备用图像 调用类似 button setSelected YES 这是否可能无需与alternateImage用手财产 无需手动更改按钮的图像即可实现
  • Java:使用 SAXParser 拆分大型 XML 文件

    我正在尝试使用java将一个大的XML文件分割成更小的文件SAXParser 特别是维基百科转储 未压缩时大约有 28GB 我有一个Pagehandler扩展的类DefaultHandler private class PageHandle
  • 在Python中对两个文本文件进行类似SQL的JOIN,有内置的方法吗?

    我必须执行的一项常见任务是对两个文本文件执行类似 SQL 的 JOIN 即 使用在它们之间共享的标识符列上的某种联接 从 左手 和 右手 文件创建一个新文件 有时需要诸如外连接等变化 当然 我可以编写一个简单的脚本来以通用方式执行此操作 但
  • 时间序列预测(最终使用Python)[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 What algorithms exist for time series forecasting r
  • 使用 Perl 使用 sendmail 发送电子邮件

    我正在遵循以下示例这个网站 http www tutorialspoint com perl perl sending email htm使用 Perl 发送电子邮件 代码看起来像这样 my hostname hostname my thi
  • Prometheus 中的increase() 有时会将值加倍:如何避免?

    我发现对于某些图表 我从 Prometheus 获得双精度值 其中应该只是一个 我使用的查询 increase signups count 4m 刮擦间隔设置为建议最大 https stackoverflow com questions 4
  • Zend_Search_Lucene 与 SOLR

    我最近偶然发现了 Lucene 项目的 Zend Lucene 端口 我对 SOLR 有一点经验 所以我想知道它们两者之间有什么区别 特别是从性能和安装方面来看 据我所知 SOLR 需要在 Web 托管中运行 Tomcat serverle
  • XCode 调试器停止并在“停止”按钮上显示 SIGKILL

    我在 MacOS Lion 上使用 XCode 4 2 在模拟器中调试 iPhone iPad 应用程序时 我使用 XCode 工具栏上的 停止 按钮 产品 停止 来退出应用程序 此后 XCode 通常会打开 main m 文件 将执行指针
  • 如何获取DataTables中的页数

    我正在与数据表 http datatables net index我需要知道表当前包含的页数 这当然取决于每页的行数和总行数 并且可能会因用户操作而改变 有人知道如何访问这个值吗 我相信 iTotalPages 就是您所追求的 http d
  • 如何在 Julia 中将 Float64 矩阵转换为 RGB 通道矩阵?

    假设我有以下矩阵 img 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0