Ask Your Question

CV_8UC3 pixel format question Update

asked 2013-04-26 09:01:56 -0500

updated 2020-11-07 02:58:16 -0500

Thanks to berak's answer I've been able to get something going with OpenCV that uses much less code than the FFmpeg equivalent.

My new problem is that the resultant YUV image doesn't look correct. Following tutorials for saving/showing the image, it looks like the Y and/or U component are missing.

Both images: Original first, YUV second

edit retag flag offensive close merge delete


cv::Mat input_image = cv::imread("CustomInput.jpg"); cv::Mat output_image; cv::cvtColor(input_image, output_image, CV_BGR2YUV); cv::imwrite("/home/nmenne/hri/trunk/dsat/dsat_lsa/CustomOutput.jpg", output_image);

the1evilgenius gravatar imagethe1evilgenius ( 2013-04-26 14:21:57 -0500 )edit

2 answers

Sort by ยป oldest newest most voted

answered 2013-04-26 09:12:13 -0500

berak gravatar image
cv::Mat rgb=imread("lena.jpg");

cv::Mat yuv;
edit flag offensive delete link more


This does the trick. Would you happen to know why the resultant yuv mat looks like the Y' and maybe the U components are missing?

the1evilgenius gravatar imagethe1evilgenius ( 2013-04-26 15:40:24 -0500 )edit

answered 2013-04-26 09:19:39 -0500

What kind of YUV do you want? There is cvtColor function in OpenCV. It converts images from one color space to another. You need to use one of CV_BGR2YUVxxx constant.

edit flag offensive delete link more


YUV420 would be the desired constant, i think.

Do you know where this is documented? The cvtColor documentation doesn't have any of the YUV options listed.

the1evilgenius gravatar imagethe1evilgenius ( 2013-04-26 10:59:25 -0500 )edit

Question Tools


Asked: 2013-04-26 09:01:56 -0500

Seen: 2,321 times

Last updated: Apr 26 '13