作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将 Andrew Ng 类(class)中的基本神经网络应用程序从 Python 移植到 Julia,但陷入了这一部分。
我正在使用自己的数据集,因此我正在创建自己的解决方案来处理图像并调整图像大小。为了与Python代码中的完全相同(并且将所有图像作为一个矩阵中的向量),我需要将它们从RGB类型转换为数组类型,这样我就可以将它们存储为矩阵中的列,但我保留了一个错误我似乎无法在其他地方找到信息。
我目前正在使用所提出的想法的改编版本 here .
using Images, FileIO, TestImages
cat_path = "path/Cat/"
cat_imgs = joinpath.(cat_path, readdir(cat_path))
function process_image(path_vec::Vector{String}, h::Int64, w::Int64, label::Int64)
result = zeros((h*w), length(path_vec))
class = []
for i in enumerate(path_vec)
img = load(i[2])::Array{RGB{N0f8},2}
img = imresize(img,(h,w))::Array{RGB{N0f8},2}
img = vec(img)::Vector{RGB{N0f8}}
result[:,i[1]] = img # this is the line where I believe Im getting the error
push!(class, label)
end
return result, class
end
如果我尝试将图像从 RGB 更改为灰色,它会起作用(这是有道理的,因为它们只有一个 channel ,并且很容易变成一个数组),但如果我想将所有 channel 保留在向量中,我就不能只需将它们作为 Vector{RGB{N0f8}} 保存到矩阵中,如果我尝试使用 img = Convert(Array{Float64,1},img)
我收到错误:方法错误:无法
将 RGB{N0f8} 类型的对象转换为 Float64 类型的对象
我不确定如何使代码易于重现,但我相信如果您创建一个包含单个图像的文件夹并更新文件路径应该是可能的。或者只是使用测试图像运行函数内的各个行:
using TestImages
img = testimage("mandrill")
最佳答案
只需使用channelview
。请注意,RGB 值将用作第一个维度。
julia> channelview(testimage("mandrill"))
3×512×512 reinterpret(reshape, N0f8, ::Array{RGB{N0f8},2}) with eltype N0f8:
[:, :, 1] =
0.643 0.471 0.388 … 0.475 0.494 0.035
0.588 0.49 0.29 0.58 0.663 0.043
0.278 0.243 0.122 0.608 0.659 0.047
;;; …
[:, :, 512] =
0.702 0.471 0.376 … 0.318 0.314 0.016
0.737 0.541 0.314 0.314 0.247 0.02
0.463 0.29 0.192 0.235 0.278 0.008
如果您想要不同的尺寸布局,可以将 permutedims
与 channelview
一起使用:
julia> permutedims(channelview(testimage("mandrill")),[2,3,1])
512×512×3 Array{N0f8,3} with eltype N0f8:
[:, :, 1] =
0.643 0.247 0.294 0.373 0.616 … 0.275 0.569 0.459 0.553 0.702
0.471 0.529 0.216 0.294 0.455 0.51 0.478 0.478 0.533 0.471
⋮ ⋱ ⋮
关于arrays - 如何将RGB{N0f8}类型转换为Array{Float64},我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74274551/
我是一名优秀的程序员,十分优秀!