扫码关注官方订阅号
我想让图像按照某一点(非图像中心点)偏转a角度,这个有没有现成的函数?
谢谢
业精于勤,荒于嬉;行成于思,毁于随。
用 cv::warpAffine() 可以实现。
#include "opencv2/imgcodecs.hpp" #include "opencv2/highgui/highgui.hpp" #include "opencv2/imgproc/imgproc.hpp" using namespace cv; cv::Mat rotateImage(const cv::Mat &src, cv::Point2f anchor_pt, double angle) { cv::Mat rot_mat = cv::getRotationMatrix2D(anchor_pt, angle, 1.0); cv::Mat dst; cv::warpAffine(src, dst, rot_mat, src.size()); return dst; } int main( int argc, char** argv ) { cv::Mat src = cv::imread("C:/lena.bmp"); cv::Mat dst; cv::Point2f anchor_pt(src.cols / 3.0f, src.rows / 3.0f); double rot_angle = 45.0; dst = rotateImage(src, anchor_pt, rot_angle); cv::imshow("src", src); cv::imshow("dst", dst); cv::waitKey(0); return 0; }
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
扫描下载App
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
用 cv::warpAffine() 可以实现。