【问题标题】:how to display a 8bit 256x256 array in c/matlab?如何在 c/matlab 中显示 8 位 256x256 数组?
【发布时间】:2012-04-30 16:56:37
【问题描述】:

我在 c 中有一个数组:

unsigned char image_in[256*256] = {
     72,  57,  55,  67,  79,  58,  52,  72,  96,  81,  72,  76,  93, 107,  91,  84,  95,  66,....IT GOES ON AND ON 256x256.....}

每个值都是索引像素的 8 位 rgb。

现在的问题是我如何显示这张图片?我可以使用 C 或 matlab 或其他任何东西..

【问题讨论】:

  • 如果您只想显示此图像一次,我建议您使用非常简单的PNM 格式将其写入文件,然后使用(大部分)任何图像查看器。
  • 以什么格式写入文件?没有 ','?有什么特殊的标题?
  • PNM 文件非常有用,因为它们具有简单的格式。标题很简单,内容结构简单。查看链接了解格式:PNM
  • 您想在程序中显示该图像的定义位置,还是只想查看它?您可以复制这些值并粘贴到其他地方吗?
  • 我可以把它放在任何我想放的地方。只是想看看照片。

标签: c image matlab rgb 8-bit


【解决方案1】:

哎呀,这个问题真的没有很好地表达 - 有很多细节缺失,例如:您需要灰度/RGB 图像吗?您想以编程方式(即从您的 C 代码)执行此操作,还是只是快速的一次性快照?您可以将这些值复制到某个 *.csv 文件或 Matlab 脚本(参见 Casliho 的评论)吗?

如果您只想在 Matlab 中将图像显示为灰度,请调用imshow 函数:

m = randint(256,256,256); % This creates a random 256x256 array of integers - replace with your values
imshow(m);                % This creates a greyscale image

从绘图对象中,您将能够将图像导出为多种格式(*.jpg、*.png 等)

【讨论】:

  • 感谢回复,文件是8bit的RGB文件。每个值都是一个像素(一个 8 位表示该像素内的 RGB)。 matlab 中的 imshow() 对我不起作用。
  • @Wops - imshow 可以显示 RGB。您只需将输入设为 256x256x3 数组。请参阅文档。
猜你喜欢
  • 2011-07-06
  • 2013-01-30
  • 1970-01-01
  • 1970-01-01
  • 2010-12-08
  • 2021-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多