我用 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
*请原谅我的英文写作错误