Simulink-Coder image data representation in C

2 次查看(过去 30 天)
Hello, I have a question related to an image representation out of Matlab Simulink Coder. If I have a Simulink block with an RGB image output size for instance 320x240x3, I get in my generated code an array with the size "img[230400]". My question is now, if I want to write this array to an .ppm-file-format, how do I have to iterate over this array to get a row based rgb order and see the image.
Thanks in advanced.

采纳的回答

Alain Kuchta
Alain Kuchta 2017-5-12
编辑:Alain Kuchta 2017-5-12
Assuming img is an I x J x K array, the array element given in MATLAB by:
img(i,j,k)
can accessed in the generated C code at:
img[(k-1)*(J*I) + (j-1)*I + (i-1)];
For a more detailed explanation of how matrices and arrays are stored in generated code, refer to the following documentation:
  1 个评论
FJS
FJS 2017-5-13
Thank's, that helped. Column based thinking was the tricky part. Here is my solution:
for(int i = 1; i <= dimy; i++)
for(int j = 1; j <= dimx; j++)
for(int k = 1; k <= channel; k++)
fprintf(fp,"%d ",img[(k-1)*(dimx*dimy)+(j-1)*dimy+(i-1)]);

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Deployment, Integration, and Supported Hardware 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by