【发布时间】:2022-11-15 17:54:53
【问题描述】:
我正在同时使用 Zivid.NET、Halcon.NET 和 ML.NET。 Zivid 为我提供了一个 3D 字节数组(行、列、通道),Halcon 使用 HImages/HObjects,ML.NET 功能需要一个 1D 字节数组(与 File.ReadAllBytes() 相同)
到目前为止,我使用了一种解决方法:
- 我
save()'d Zivid'simageRGBA作为 PNG, - 我用 Halcon 的
read_image()阅读了它,它给了我一个HObject。 - 经过一些图形处理后,我使用
write_image()再次将HObject保存为PNG。 - 使用
File.ReadAllBytes()读取 PNG,我得到了我的 ML.NET 功能所期望的byte[]。但这对于大量数据来说远非理想。
我需要的是:
- 一种将
byte[r,c,c]图像转换为HObject/HImage的方法。 - 一种将
HObject/HImage图像转换为byte[]的方法。Halcon 的
read_image()和write_image()似乎对此没有任何选择,到目前为止我还没有发现任何有用的东西。编辑:在使用建议的 Halcon 程序(谢谢!)从 IntPtr 导入图像并使用 Halcon 的
write_image()保存到文件后,我得到一个非常扭曲的图像: 我使用的来自 Zivid 的 ImageRGBA class 可以给我:- 图像中第一个像素的 IntPtr
- [行、列、通道] 格式的 3D 字节数组
- [row,col] 格式的二维字节数组
我直接使用建议的 Halcon 程序尝试了 IntPtr,2 和 3 我尝试使用来自 How to get IntPtr from byte[] in C# 的建议,所有 3 都导致了相同的失真图像。
- 一种将
【问题讨论】:
标签: halcon