我刚买了COMS摄像头模块,想对摄像头采集的图像进行图像处理,不过对怎么分配图像缓冲区有些疑惑。我仿照图像处理例程里的代码,用malloc()来分配空间,这是我测试代码,在DMA_PPI中断函数里调用
//yuv422: Y0U0 Y1V0 Y2U1 Y3V1 Y4U2 Y5V2 ``````
void yuv2rgb(char *src)
{
long i,j,k;
char y,u,v;
char r,g,b;
char *dib_src=src;
char *dib_new;
dib_new=(unsigned char *)malloc(640*480*3);
for(i=0;i<480;i++)
{
for(j=0;j<640*3;j++)
{
*(dib_new+i*640*3+j)=0x24;
}
}
}
只是对分配的空间写0x24,可是却影响到了采集到得图像,图像数据全被0x24覆盖了。
现在想请问一下几个问题:
1.这情况是什么原因呢?
2.malloc()是分配哪里的空间呢?最大能分配多少?
3.有什么方法来分配图像缓冲区来进行图像处理呢?