Черный плавник. 2D DCT/IDCT (сжатие изображения) с BF537 EZ-KIT, КАК ЗАПИСАТЬ В ФАЙЛ (на диск) реконструированное изображение (необработанные пиксельные данные) из памяти BF537?

Я провел этот эксперимент с цифровой обработкой изображений — 2D DCT/IDCT (сжатие изображения) с BF537 EZ-KIT, реализованным AnalogDevices.

Чтобы упомянуть резюме:

  • Я строю проект;

  • Загрузите черно-белое изображение (*.bmp) с диска в память Blackfin по адресу 0x8000 с помощью Image Viewer;

  • Запустить проект;

  • Нажмите кнопку (от SW 10 до 13) на плате BlackFin (BF537) и выберите уровень сжатия;

  • После вычисления таблицы квантования и DCT-›Quantization-›Dequantization-›Inverse DCT.. получается реконструированное изображение по некоторой адресной точке в памяти BF (0x80000);

  • С помощью Image Viewer (от VisualDsp) я загружаю реконструированное изображение в градациях серого из памяти BF, и все в порядке, и различия видны;

Упомяните, что когда я загружаю изображение в память BF с диска с помощью Image Viewer или из памяти BF с помощью Image Viewer, исходным форматом является 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);

Пожалуйста, кто-нибудь знает, как создать / записать / сохранить изображение *.bmp из необработанных пиксельных данных, находящихся в памяти Blackfin в C< /strong> язык?

Заранее спасибо; любые решения, предложения будут оценены!

Ниже ссылка на архив всего проекта Visual Dsp. (я использую VisualDsp++ 5.0) https://docs.google.com/open?id=0B4IUN70RC09nMjRjNzlhNTctMTI3OS00ZmI4LWI4NzAtNWRkM2MyMDgyMjZm

* извините меня за мои ошибки в написании английского


person Florin Vîrdol    schedule 08.01.2012    source источник
comment
Пожалуйста, потратьте немного времени и переформатируйте текст...   -  person Daniel Mošmondor    schedule 08.01.2012
comment
Я закончил форматирование, и я думаю/надеюсь, что это намного лучше. (Ранее у меня были проблемы с подключением к Интернету, и я не мог редактировать; извините!)   -  person Florin Vîrdol    schedule 08.01.2012
comment
Слишком много ненужной информации, слишком много восклицательных знаков.   -  person Alexey Frunze    schedule 08.01.2012


Ответы (1)


Перед всеми данными пикселей добавьте информацию для заголовка растрового изображения.

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

Если вы записываете эти данные заголовка перед данными изображения, это должен быть действительный файл растрового изображения.

person nmjohn    schedule 08.01.2012