Using fwrite, want to skip writing three items in A between each write
-
10-10-2019 - |
Question
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?
Solution
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, usingfwrite
- Downsample
Cb
andCr
by a factor of two to getCb_down
andCr_down
- Write
Cb_down
andCr_down
usingfwrite
to the same open file handle
OTHER TIPS
Logical indexing from 'Steve on Image Processing' might be a good starter for your aim.
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow