cv::GetPerspectiveTransform和cv::warpPerspective

cv::GetPerspectiveTransform获取透视变换矩阵

  • 用于获取透视变换矩阵。它需要源图像中四个点的坐标和这些点在输出图像中的位置坐标
C++ 复制代码
cv::Mat cv::getPerspectiveTransform(const cv::Point2f* src, const cv::Point2f* dst)
  • 参数:

    • src:源图像中四个点的坐标数组。

    • dst:这四个点在输出图像中的位置坐标数组。

  • 返回值:

    • 返回一个3x3的透视变换矩阵。

cv::warpPerspective

C++ 复制代码
	void cv::warpPerspective(
		cv::InputArray src, // 输入图像
		cv::OutputArray dst, // 输出图像
		cv::InputArray M, // 3x3 变换矩阵
		cv::Size dsize, // 目标图像大小
		int flags = cv::INTER_LINEAR, // 插值方法
		int borderMode = cv::BORDER_CONSTANT, // 外推方法
		const cv::Scalar& borderValue = cv::Scalar() //常量边界时使用
	);

例程

C++ 复制代码
#include <opencv2/opencv.hpp>
 
int main()
{
    cv::Point2f srcTriangle[4];
    cv::Point2f dstTriangle[4];
 
    // 设置源图像中的四个点坐标
    srcTriangle[0] = cv::Point2f(0, 0);
    srcTriangle[1] = cv::Point2f(src.cols - 1, 0);
    srcTriangle[2] = cv::Point2f(0, src.rows - 1);
    srcTriangle[3] = cv::Point2f(src.cols - 1, src.rows - 1);
 
    // 设置输出图像中的四个点坐标
    dstTriangle[0] = cv::Point2f(0, 0);
    dstTriangle[1] = cv::Point2f(dst.cols - 1, 0);
    dstTriangle[2] = cv::Point2f(0, dst.rows - 1);
    dstTriangle[3] = cv::Point2f(dst.cols - 1, dst.rows - 1);
 
    // 获取透视变换矩阵
    cv::Mat perspectiveTransform = cv::getPerspectiveTransform(srcTriangle, dstTriangle);
 
    // 应用透视变换
    cv::warpPerspective(src, dst, perspectiveTransform, dst.size());
 
    return 0;
}
相关推荐
星幻元宇VR12 分钟前
5D动感影院,科技与沉浸式体验的完美融合
人工智能·科技·虚拟现实
WZGL123017 分钟前
“十五五”发展展望:以社区为底座构建智慧康养服务
大数据·人工智能·物联网
阿杰学AI25 分钟前
AI核心知识86——大语言模型之 Superalignment(简洁且通俗易懂版)
人工智能·深度学习·ai·语言模型·超级对齐·superalignment·#ai安全
CV@CV28 分钟前
拆解自动驾驶核心架构——感知、决策、控制三层逻辑详解
人工智能·机器学习·自动驾驶
海心焱33 分钟前
从零开始构建 AI 插件生态:深挖 MCP 如何打破 LLM 与本地数据的连接壁垒
jvm·人工智能·oracle
阿杰学AI34 分钟前
AI核心知识85——大语言模型之 RLAIF(简洁且通俗易懂版)
人工智能·深度学习·ai·语言模型·aigc·rlaihf·基于ai反馈的强化学习
Coco恺撒34 分钟前
【脑机接口】难在哪里,【人工智能】如何破局(2.研发篇)
人工智能·深度学习·开源·人机交互·脑机接口
kebijuelun40 分钟前
ERNIE 5.0:统一自回归多模态与弹性训练
人工智能·算法·语言模型·transformer
Network_Engineer41 分钟前
从零手写LSTM:从门控原理到PyTorch源码级实现
人工智能·pytorch·lstm
芝士爱知识a1 小时前
AlphaGBM 深度解析:下一代基于 AI 与蒙特卡洛的智能期权分析平台
数据结构·人工智能·python·股票·alphagbm·ai 驱动的智能期权分析·期权