opencv透视变换

const static int w_rc = 424, h_rc = 32;

void img_per(Mat img)
{
    cv::resize(img, img, cv::Size2i(600, 55));
    std::vector<float> result_points{2,13,565,14,1,44,565,43 };
    Mat result = Mat(result_points);
    result= result.reshape(1, std::vector<int>{ 4, 2 });
    std::vector<float> target_points{ 0,0,w_rc - 1,0,0,h_rc - 1,w_rc - 1,h_rc - 1 };
    Mat target = cv::Mat(target_points);
    target = target.reshape(1, std::vector<int>{ 4, 2 });
    Mat transform_matrix = cv::getPerspectiveTransform(result, target);
    Mat target_img;
    cv::warpPerspective(img, target_img, transform_matrix, cv::Size2i(w_rc, h_rc));//将result_points中的内容放到target_points大小的图像中

    cv::imshow("original img2", img);
    cv::imshow("transformed img2", target_img);
    cv::waitKey(0);
}

以上代码中的img即上图,该代码是对img做透视变换!

备注:

warpPerspective()的Size2i()参数必须与target_points中的宽高一致,否则生成的透视变换的图像不正确!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值