0

我用 AnalogDevices实现的BF537 EZ-KIT用数字图像处理 - 2D DCT/IDCT(图像压缩)尝试了这个实验。

提到“简历”:

  • 我建立项目;

  • 使用 Image Viewer 将黑白图像 (*.bmp) 从磁盘加载到 Blackfin 内存 0x8000;

  • 运行项目;

  • 按下 BlackFin 板 (BF537) 上的按钮(从 SW 10 到 13)并选择压缩级别;

  • 在计算出量化表和 DCT->量化->反量化->逆 DCT.. 在 BF 内存 (0x80000) 中的某个地址点处生成重建图像;

  • 使用Image Viewer(来自 VisualDsp),我从 BF 内存加载重建的灰度图像,一切正常,差异可见;

提到当我使用 Image Viewer 从磁盘或使用 Image Viewer 从 BF 内存将图像加载到 BF 内存时,源格式为Raw Pixel Data

但是除了这个项目之外我想做的所有事情都是:

  • 将(创建/写入)[用C语言] 将Blackfin内存中的图像重建到磁盘中(编写代码或类似的东西;不具有图像查看器功能 - 将图像另存为...)。

我试图将位于内存中0x80000的重建缓冲区写入 *.bmp 文件,但似乎当我打开它时,我收到如下错误:“无法读取文件头;未知文件格式,或找不到文件.. .";

//my code for saving/creating/writing
//    that reconstructed image = Raw pixel data from Blackfin memory  

    unsigned char *jpeg_buff;
    int jpeg_buff_size;
    jpeg_buff=0x80000;

    jpeg_buff_size = 308280;     //jpeg_buff_size = 480*640*1;
    FILE *jpegfp = fopen ("myimg_reconstr80000.bmp", "wb");
    fwrite (jpeg_buff, 1, jpeg_buff_size, jpegfp);
    fclose (jpegfp);

请问有人知道如何用C语言从位于 Blackfin 内存中的原始像素数据创建/写入/保存*.bmp 图像吗?

提前致谢; 任何解决方案,建议将不胜感激!

下面是整个 Visual Dsp 项目存档的链接。(我正在使用 VisualDsp++ 5.0) https://docs.google.com/open?id=0B4IUN70RC09nMjRjNzlhNTctMTI3OS00ZmI4LWI4NzAtNWRkM2MyMDgyMjZm

*请原谅我的英文写作错误

4

1 回答 1

1

在所有像素数据之前,添加位图标题的信息。

http://en.wikipedia.org/wiki/BMP_file_format#Bitmap_file_header

如果您在图像数据之前写入此标头数据,则它应该是有效的位图文件。

于 2012-01-08T00:29:00.633 回答