WPZAC 发表于 2010-8-14 09:25:56

DE0+D5M采集的像素数据送给nios处理

DE0+D5M采集的像素数据送给NIOS处理之后,再存储到sd卡。NIOS处理的是RGB格式数据,打包为bmp存储到sd卡。请问下面这个情况是什么原因引起的,谢谢!!!

WPZAC 发表于 2010-8-14 13:43:57

有谁做过VGA呢?这个会不会是送给NIOS的数据,这些数据高低位放置错误而导致bmp数据打包出问题?当我挡住摄像头光的时候,读出来的图片是全黑的,没问题。

chenhaifeichina 发表于 2010-8-15 21:02:02

你写的图像数据有问题

chenhaifeichina 发表于 2010-8-15 21:06:29

你可以把你的nios中的谢数据那块贴出来,才能知道你写的什么问题,如果摄像头过来的数据没有问题的话,就试试先不用摄像头,谢谢简单的的试试。

WPZAC 发表于 2010-8-15 21:48:16

回复 4# chenhaifeichina


    #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 =480;
alt_u16 HEIGHT =340;
int main()
{
    int i, j,q;
    unsigned charimage;// image array 800 * 400 * 3 = 960000
    alt_u16 size;      // file size
    alt_u16 read_data1;
    alt_u8r, g, b;
    FATFS fs;
    FILfile;   //file objects//
    UINT bw;   //File R/W count//

    static void delay(int n)
{
    int i ;
    for(i=0;i<n;i++);
   
}
IOWR_ALTERA_AVALON_PIO_DATA(CLOCK_BASE,0);
for(j = 0; j < HEIGHT; j++) {
    for(i = 0; i < WIDTH; i++) {
       IOWR_ALTERA_AVALON_PIO_DATA(CLOCK_BASE,1);
       delay(50);
       IOWR_ALTERA_AVALON_PIO_DATA(CLOCK_BASE,0);
       delay(3);
       read_data1= IORD_ALTERA_AVALON_PIO_DATA(DATA_A_BASE);   
      
      r = ((read_data1 & 0xf800) >>8);
      g = ((read_data1 & 0x07e0) >>2);
      b = ((read_data1 & 0x001f) <<3);
      
      *(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
size = WIDTH * HEIGHT * 3 + DATA_OFFSET;
header = (alt_u8)(size & 0x000000ff);
header = (size >> 8 ) & 0x000000ff;
header = (size >> 16) & 0x000000ff;
header = (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;
}
这个就是16位rgb打包为bmp代码,高手的进来都指导指导下啊。

WPZAC 发表于 2010-8-16 11:44:13

问题搞定了

wushimin6 发表于 2010-9-17 10:02:53

怎么搞定的?我也出现这种问题

wzh6328 发表于 2010-10-9 11:03:54

什么问题影响的,分享一下呗

Elec_Ramble 发表于 2010-12-22 15:22:32

透露一下,大家一起进步多好!

3539591 发表于 2011-7-20 10:14:35

我也是这样的情况,请问怎么解决的?
页: [1]
查看完整版本: DE0+D5M采集的像素数据送给nios处理