[opencv] 图像旋转180度要注意的细节问题

两种方法:

第一种传统warpAffine

    cv::Point2f center = cv::Point2f(image.cols / 2, image.rows / 2);  
    cv::Mat rotateMat;   
    rotateMat = cv::getRotationMatrix2D(center, 180,1);  
    cv::Mat rotateImg;  
    cv::warpAffine(image, rotateImg, rotateMat, image.size());  

第二种transpose + flip

    transpose(image,b);
    ////transpose(b,b);
    flip(b,b,1);    //Horizontal flipping
    transpose(b,b);
    flip(b,b,1);    //Horizontal flipping

结果展示,主体都没问题,123是第二种transpose + flip结果,234是第一种warpAffine

细节在于warpAffine会有one pixel的黑边。下图依次是原图的右下角像素点,123图左上角像素点,234图左上角像素点。

      

 

转载于:https://www.cnblogs.com/zhanxiage1994/p/6687506.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值