DE0+D5M采集的像素数据(RGB)转bmp格式
这个是用摄像头采集的数据RGB格式,打包为bmp之后存储到sd卡,可是却出现了这样的问题,请大家帮忙看看是什么原因造成的?谢谢!! 以前有研究過D5M,但沒有碰到類似現象,我猜是你的RGB轉換有問題,你可以把程序貼出來 问题搞定。。。。。 同学,见到你搞定了bmp,可不可以发个案例过来参考哈!我QQ:1244673032 回复 4# zhuhuan0000
#define BMP_NAME "/mnt/host/capture.bmp"
#define DATA_OFFSET 54
alt_u8 header = {
0x42, // identity : B
0x4d, // identity : M
0, 0, 0, 0,// file size
0, 0, // reserved1
0, 0, // reserved2
54, 0, 0, 0, // RGB data offset
40, 0, 0, 0, // struct BITMAPINFOHEADER size
0, 0, 0, 0,// bmp width
0, 0, 0, 0,// bmp height
1, 0, // planes
24, 0, // bit per pixel
0, 0, 0, 0,// compression
0, 0, 0, 0,// data size
0, 0, 0, 0,// h resolution
0, 0, 0, 0,// v resolution
0, 0, 0, 0,// used colors
0, 0, 0, 0 // important colors
};
alt_u16 WIDTH = 800;
alt_u16 HEIGHT = 400;
int main() {
int i, j;
alt_u8image;// image array 800 * 400 * 3 = 960000
alt_u16 file_size; // file size
FILE *fp = NULL; // file pointer for bmp file to write
alt_u32 data;
alt_u16 read_data1;
alt_u16 read_data2;
alt_u8r, g, b;
CMOS_CAPTURE_START(CMOS0_BASE);
usleep(1000 * 1000 * 10);
CMOS_CAPTURE_STOP(CMOS0_BASE);
for(j = 0; j < HEIGHT; j++) {
for(i = 0; i < WIDTH; i++) {
data = CMOS_READ(CMOS0_BASE);
read_data1 = data & 0x0000ffff;
read_data2 = ((data & 0xffff0000) >> 16);
r = ((read_data2 & 0x03fc) >> 2);
g = ((read_data1 & 0x7c00) >> 7) + ((read_data2 & 0x7000) >> 12);
b = ((read_data1 & 0x03fc) >> 2);
*(image + 3 * (WIDTH * j + i) + 0) = b;// B
*(image + 3 * (WIDTH * j + i) + 1) = g;// G
*(image + 3 * (WIDTH * j + i) + 2) = r;// R
}
}
// file size
file_size = WIDTH * HEIGHT * 3 + DATA_OFFSET;
header = (alt_u8)(file_size & 0x000000ff);
header = (file_size >> 8 ) & 0x000000ff;
header = (file_size >> 16) & 0x000000ff;
header = (file_size >> 24) & 0x000000ff;
// width
header = WIDTH & 0x000000ff;
header = (WIDTH >> 8 ) & 0x000000ff;
header = (WIDTH >> 16) & 0x000000ff;
header = (WIDTH >> 24) & 0x000000ff;
// height
header = HEIGHT & 0x000000ff;
header = (HEIGHT >> 8 ) & 0x000000ff;
header = (HEIGHT >> 16) & 0x000000ff;
header = (HEIGHT >> 24) & 0x000000ff;
RGB打包为BMP代码 你QQ多少,有很多问题想请教你, 66666666666666666666
页:
[1]