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; }
|