【问题标题】:Convert Mono8 image buffer to displayable format for wx.Bitmap in wxPython Phoenix in Python将 Mono8 图像缓冲区转换为 wxPython 中 wx.Bitmap 的可显示格式 Python 中的 Phoenix
【发布时间】:2016-05-16 20:00:10
【问题描述】:

我是图像处理的新手。
我目前有一个用 Mono8 编码的图像缓冲区。

我正在尝试使用wx.Bitmap 显示它。但是,我只找到 RGB、RGBA 或 PNG 的文档。

  • 有什么方法可以将 Mono8 缓冲区转换为 wx.Bitmap() 可显示的另一种格式?
  • 是否有其他小部件能够显示 Mono8 图像缓冲区?

【问题讨论】:

  • 这些是支持的图像格式wxpython.org/docs/api/wx.Image-class.html#__init__ ...您需要使用其他一些工具将您的 mono8 转换为 wx.Bitmap 可理解的格式
  • 那么,我是否应该寻找将 Mono8 转换为这些格式中的每一种,直到找到适合的格式?在哪里可以了解这些格式之间的差异?
  • imagemagic 应该能够(我想我看到了关于那个的注释......)你也可以使用 OpenCV 在 python 中转换它......你只需要将它转换为任何在这些格式中...不知道在适合之前将其转换为每种格式是什么意思...您不知道 GIF 或 JPEG 是什么?
  • 我的意思是:我可以转换成这些格式中的任何一种(因此,只需要找到如何)还是应该找到一种“接受从 Mono8 转换为它”的格式?我只知道它们是具有或多或少压缩的文件扩展名......就是这样

标签: python image-processing bitmap wxpython pixelformat


【解决方案1】:

我已经找到了方法:

Mono8 只是grayscale 上从 0 到 255 的像素值表。
根据其他颜色(红色、绿色和蓝色),RGB 是同一张表。

因此,同一张图像在 RGB 中的值是 Mono8 中的 3 倍。
=> 对每个像素的组件重复相同的值。

rgb = [ v for v in image_buffer for _ in range( 3 ) ]
rgb_ba = bytearray( rgb )
bitmap.FromBuffer( height, width, rgb_ba )

感谢 Martijn Pieters 对列表理解的help

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-22
    • 1970-01-01
    • 1970-01-01
    • 2020-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多