как сделать аффинную деформацию изображения формата NV12
Мне нужно применить аффинную модель деформации к изображению NV12.
Вот формат NV12, Y отделен от Cb Cr. Cb Cr перемежается.
Модель выглядит как
[a11, a12, xt
a21, a22, yt]
a ** - вращение, xt yt - говно.
Эта модель предназначена для Y-плоскости.
Поскольку Cb Cr чередуются, я думаю, что не могу напрямую применить ту же модель к CB CR (с чередованием).
Мои вопросы заключаются в том, как я могу применить правильную аффинную деформацию к Cb Cr и вывести правильное изображение (красочное).
1 ответ
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);