sRGB -> YUV に Python で OpenCV あたりで変換したい.
画像サイズ大きいので高速処理したい.
ネット上では YUV -> RGB ばかりでつらい
YUV
いろいろフォーマットあります.
https://hk.interaction-lab.org/firewire/yuv.html
https://www.klab.com/jp/blog/tech/2016/1054828175.html
通常は 420(8bit) あたりでしょうか
OpenCV color conversion
YUV420(IV12)
COLOR_RGB2YUV_I420
でいけます!
NV12
cv2 では直接はサポートしていないです
とりあえずぺろっと処理する.
画像サイズが 2 の倍数でないとエラーになりますのでご注意ください.
理想は一旦 COLOR_RGB2YUV
あたりで変換して, その後 U, V を interleave で入れ替えるでしょうか.
colorspace
T.B.W.
おまけ(ffmpeg)
fmmpeg でも PNG などを YUV に変換できます!
NV12 の場合は
ffmpeg で -pix_fmt nv12
(バグ(?)なのか yuv420p は 420i として処理される)