<opencv>第九课 透视变换

1
Mat cv::getPerspectiveTransform (const Point2f src[], const Point2f dst[])

返回相应 4 个点对的 3x3 透视变换。

1
void cv::warpPerspective (InputArray src, OutputArray dst, InputArray M, Size dsize, int flags=INTER_LINEAR, int borderMode=BORDER_CONSTANT, const Scalar &borderValue=Scalar())

对图像应用透视变换。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgproc.hpp>
#include <iostream>
using namespace cv;
using namespace std;
float w = 250, h = 350;
Mat matrix, imgWarp;
int main()
{
    string path = "card.jpg";
    Mat img = imread(path);
    std::cout << img.size() << std::endl;
    Point2f src[4] = { {245, 1098}, {1611, 513},  {1836, 3490},{3002, 2491}};
    Point2f dst[4] = { {0.0f, 0.0f}, {w, 0.0f}, {0.0f, h}, {w, h} };
    matrix = getPerspectiveTransform(src, dst);
    warpPerspective(img, imgWarp, matrix, Point(w, h));
    for (int i = 0; i < 4; i++) {
        circle(img, src[i], 10, Scalar(0, 0, 255), FILLED);
    }

    namedWindow("Image",WINDOW_NORMAL);
    imshow("Image", img);
    imshow("ImageWarp", imgWarp);
    waitKey(0);
    return 0;
}


“觉得不错的话,给点打赏吧 ୧(๑•̀⌄•́๑)૭”

微信二维码

微信支付

支付宝二维码

支付宝支付

<opencv>第九课 透视变换
https://hermione20.github.io/2024/10/14/第9课 透视变换/
作者
TC
发布于
2024年10月14日
许可协议