문제

So, I'm doing some image processing in MATLAB, and attempting to save a file out to a y4m format with colorspace 4:2:0.

Basically, what it comes down to is I want to use fwrite, but I want to be able to skip a certain number of items in the vector that's writing. Is there an easy way I can do this?

도움이 되었습니까?

해결책

There are tools for doing this already.

If you insist on doing things yourself (I do, since I can't be bothered paying for the separate toolboxes), you can always make a new vector containing only the elements you need to write. Assuming that you have YUV 4:4:4 and you want to write it as YUV 4:2:0:

  • Split yuv444 into it's separate Y', Cb, Cr components
  • Write Y' as is, using fwrite
  • Downsample Cb and Cr by a factor of two to get Cb_down and Cr_down
  • Write Cb_down and Cr_down using fwrite to the same open file handle

다른 팁

Logical indexing from 'Steve on Image Processing' might be a good starter for your aim.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top