【发布时间】:2019-06-06 13:53:43
【问题描述】:
我遇到了一个奇怪的情况,我希望能够将 OpenCV.Mat 写入磁盘,而无需执行从 BGR(其内部表示)到 RGB 的自动转换。
也许这是过早转换的情况,但为了避免复制内存,我将一些原始 RGB 数据传输到 new Mat,我并不关心它会将其解释为 BGR,因为所有操作我使用 OpenCV 执行的 m 与颜色无关。
但是在保存到磁盘时,默认的Mat.Save 会自动将“返回”转换为 RGB,所以我原来的 RGB 最终会倒退。
我知道我可以做一个 CvInvoke.CvtColor 但这又回到了复制内存并且这让我很恼火 Mat.Save 只是将它转换回来。
有没有办法说只需将我的像素保存到可用的文件类型,而不必将它们复制到内存中的另一个位置?
【问题讨论】:
-
这似乎不太可能,尽管确切的格式取决于文件扩展名并且您没有提供任何提示。不要忘记你的机器是小端的,所以如果你正在查看原始字节,那么它会向后看。