0

我需要将翘曲仿射模型应用于 NV12 图像。

这里是 NV12 的格式,Y 和 Cb Cr 是分开的。Cb Cr 是交错的。

在此处输入图像描述

模型看起来像

[a11,a12,xt

a21,a22,yt]

a** 是旋转,xt yt 是狗屎。

该模型适用于 Y 平面。

由于 Cb Cr 是交错的,我认为我不能直接将相同的模型应用于 CB CR(交错)。

我的问题是如何将正确的翘曲仿射应用于 Cb Cr 并输出正确的图像(彩色)。

4

1 回答 1

0
cv::Mat src_y_mat(src_h, src_w, CV_8UC1, src_data, src_s);
cv::Mat dst_y_mat(dst_h, dst_w, CV_8UC1, dst_data, dst_s);
cv::warpAffine(src_y_mat, dst_y_mat, trans_mat, cv::Size(dst_w, dst_h),
                               cv::INTER_LINEAR, cv::BORDER_CONSTANT, border_value);
trans_mat.at<float>(0, 2) = trans_mat.at<float>(0, 2) / 2;
trans_mat.at<float>(1, 2) = trans_mat.at<float>(1, 2) / 2;
cv::Mat src_uv_mat(src_h / 2, src_w / 2, CV_8UC2, src_data1, src_s1);
cv::Mat dst_uv_mat(dst_h / 2, dst_w / 2, CV_8UC2, dst_data1, dst_s1);
cv::warpAffine(src_uv_mat, dst_uv_mat, trans_mat, cv::Size(dst_w / 2, dst_h / 2),
                               cv::INTER_LINEAR, cv::BORDER_CONSTANT, border_value);
于 2021-04-02T10:59:58.630 回答