cv::RotateRect rect;
cv::Mat image;
//如果原图被压缩0.5既*0.5,若原图不压缩则*1
cv::Vec2d points[4] = {
cv::Vec2d(rect.size.width * 0.5, rect.size.heigtht 0.5),
cv::Vec2d(rect.size.width * 0.5, -rect.size.heigtht 0.5),
cv::Vec2d(-rect.size.width * 0.5, -rect.size.heigtht 0.5),
cv::Vec2d(-rect.size.width * 0.5, rect.size.heigtht 0.5),
};
//角度转弧度
double theta= rect.angle * 3.14159 / 180.0;
//
double a00 = cos(theta),a01 = -sin(theta);
double a10 = sin(theta),a11 = cos(theta);
cv::Point2d newPoints[4];
for(int i = 0; i < 4; ++i){
newPoints[i].x = points[i][0] * a00 + point[i][1] * a01;
newPoints[i].y = points[i][0] * a10 + point[i][1] * a11;
}
for(int i = 0; i < 4; ++i){
cv::line(image,newPoints[i],newPoints[(i+1)%4]),cv::Scalar(0,0,255),1);
}
opencv 旋转矩形框
最新推荐文章于 2024-02-20 16:20:37 发布
