我需要将翘曲仿射模型应用于 NV12 图像。
这里是 NV12 的格式,Y 和 Cb Cr 是分开的。Cb Cr 是交错的。
模型看起来像
[a11,a12,xt
a21,a22,yt]
a** 是旋转,xt yt 是狗屎。
该模型适用于 Y 平面。
由于 Cb Cr 是交错的,我认为我不能直接将相同的模型应用于 CB CR(交错)。
我的问题是如何将正确的翘曲仿射应用于 Cb Cr 并输出正确的图像(彩色)。
我需要将翘曲仿射模型应用于 NV12 图像。
这里是 NV12 的格式,Y 和 Cb Cr 是分开的。Cb Cr 是交错的。
模型看起来像
[a11,a12,xt
a21,a22,yt]
a** 是旋转,xt yt 是狗屎。
该模型适用于 Y 平面。
由于 Cb Cr 是交错的,我认为我不能直接将相同的模型应用于 CB CR(交错)。
我的问题是如何将正确的翘曲仿射应用于 Cb Cr 并输出正确的图像(彩色)。
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);