0

我正在尝试从处于 Ycbcr 颜色模式的帧中获取像素的 Y 值。这是我写的:

 cv::Mat frame, Ycbcrframe, helpframe;
 ........ 
cvtColor(frame,yCbCrFrame,CV_RGB2YCrCb); // converting to Ycbcr
Vec3b intensity =yCbCrFrame.at<uchar>(YPoint);
uchar yv  = intensity.val[0]; //  I thought it's my Y value but its not, coz he gives me I think the Blue channel of RGB color space 

任何想法如何正确地做到这一点

4

2 回答 2

1

下面的代码呢?

Vec3f Y_pix = YCbCrframe.at<Vec3f>(rows, cols);
int pixelval = Y_pix[0];

(PS我还没试过)

于 2013-01-07T11:21:17.400 回答
0

您需要提前知道深度(通道样本的数字格式和精度)以及通道数(通常为 3,但也可以是 1(单色)或 4(含 alpha))。

对于 3 通道、8 位无符号整数(又名字节或uchar)像素格式,每个像素都可以使用

mat8UC3.at<cv::Vec3b>(pt);
于 2015-04-06T23:51:52.080 回答