我试图将图像的RGB像素分别映射到R,G,B的2D阵列 . 当读取图像时,像素以{r1,g1,b1,r2,g2,b2 ......}的形式存储在1D阵列中 . 数组的长度是 3*height*width
. 2D阵列的宽度为X高度
for(i = 0; i < length; i++) { // length = 3*height*width
image[i][2] = getc(f); // blue pixel
image[i][1] = getc(f); // green pixel
image[i][0] = getc(f); // red pixel
img[count] = (unsigned char)image[i][0];
count += 1;
img[count] = (unsigned char)image[i][1];
count += 1;
img[count] = (unsigned char)image[i][2];
count += 1;
printf("pixel %d : [%d,%d,%d]\n", i+1, image[i][0], image[i][1], image[i][2]);
}
RGB值在 img[]
中 . 2d数组是红色[] [],绿色[] []和蓝色[] [] .
请帮忙!
1 回答
据我了解,您正在尝试重建色域 . 只需反转你的功能:
要动态创建数组:
然后:
你可以轻松地释放它们,但如果你包装了分配器函数,它总是需要包装自由函数: