2012-04-30 21 views
0

我有在C的数组:如何在c/matlab中显示8位256x256数组?

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或任何..

+0

如果你只想显示这个图像一次,我建议你使用非常简单的[PNM](http://netpbm.sourceforge.net/doc/pnm)将它写入文件。 html)格式,然后使用(大部分)任何图像查看器。 –

+0

将它以什么格式写入文件?没有','?有任何特殊的标题? – Wops

+0

PNM文件很有用,因为它们具有简单的格式。标题很简单,内容的结构很简单。检查链接以了解格式:[PNM](http://netpbm.sourceforge.net/doc/pnm.html) –

回答

2

W the,这个问题真的没有很好的公式化 - 有很多遗漏的细节,如:你需要一个灰度/ 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等)

+0

感谢您的回复,该文件是一个RGB文件8bit。每个值都是一个像素(一个8位代表该像素内的RGB)。 imshow()在matlab doesent为我工作。 – Wops

+0

@Wops - imshow可以显示RGB。您只需将输入设为256x256x3阵列即可。请参阅文档。 – bavaza