【opencv】手动提取桌面扑克
准备: 1.用画图打开图片,就可以在软件右下角看到图片的像素坐标 2.分别找出扑克四个点的坐标
下面看代码:
#include<iostream>
#include<opencv2opencv.hpp>
using namespace std;
using namespace cv;
int main()
{
Mat img = imread("D:\photogallery\其他\扑克9.jpg");
//出发点
Point2f src[4] = {
{
517,400},{
634,331},{
688,492},{
806,419} };
//目的地
float w = 250, h = 350;
Point2f dest[4] = {
{
0.0,0.0},{
w,0.0 },{
0.0,h },{
w,h } };
//变换矩阵
Mat matrix, imgWarp;
//透视变换
matrix = getPerspectiveTransform(src, dest);
warpPerspective(img, imgWarp, matrix, Size(w, h));
for (int i = 0; i < 4; i++)
{
circle(img, src[i], 10, Scalar(0, 0, 0), FILLED);
}
imshow("img", img);
imshow("imgWarp", imgWarp);
waitKey(0);
return 0;
}
运行结果:
总结: 难度慢慢体现在不熟悉的变量类型及函数
