小编win*_*eam的帖子

OpenCV图像转换和透视变化

我正在尝试使用GIMP中的透视工具来实现以下效果.

原始图像(620x466像素)

原始图像(620x466像素)

改变形象

改变形象

我所拥有的是一个固定的网络摄像头,并希望插入上面的变换矩阵图形,从而产生梯形形状的无失真输出.

我知道在OpenCV中还有其他可用于未失真图像的选项,但我真的想手动提供变换矩阵图形,同时最终得到梯形图像.

从阅读中我有一种感觉warpPerspective,findHomography或者getPerspectiveTransform可能有用,但不知道如何在C++中实现这一点

任何有用的建议将不胜感激.


尝试使用以下代码运行,但我只得到一个显示1个像素的窗口.

也许我指定像素点的方式,这是正确的吗?

    #include <opencv2/core/core.hpp>
    #include <opencv2/opencv.hpp>
    #include <cv.h>
    #include <opencv2/highgui/highgui.hpp>
    #include <iostream>

    using namespace cv;
    using namespace std;

            cv::Mat OpenWarpPerspective(const cv::Mat& _image
              , const cv::Point2f& _lu
              , const cv::Point2f& _ru
              , const cv::Point2f& _rd
              , const cv::Point2f& _ld
              , const cv::Point2f& _lu_result
              , const cv::Point2f& _ru_result
              , const cv::Point2f& _rd_result
              , const cv::Point2f& _ld_result
              , cv::Mat& _transform_matrix)
            {
              // todo do some checks on input.

              cv::Point2f source_points[4]; …
Run Code Online (Sandbox Code Playgroud)

c++ opencv transformation matrix perspective

9
推荐指数
1
解决办法
2万
查看次数

标签 统计

c++ ×1

matrix ×1

opencv ×1

perspective ×1

transformation ×1