gpt4 book ai didi

opencv实现视场转换

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 29 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章opencv实现视场转换由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

本文实例为大家分享了opencv实现视场转换的具体代码,供大家参考,具体内容如下 。

假设我们要实现QUEEN 这张片的视觉转换,使图像转换之后犹如我们正面看过一样 。

opencv实现视场转换

首先打开图形编辑器分别记录这张卡片四个边角的像素点 。

opencv实现视场转换

再利用原扑克的高宽比例 3.5:2.5 重新设置新视角的四边角像素点,具体程序如下所示:

?
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
28
29
30
31
32
33
#include <iostream>
#include <opencv2/highgui.hpp> // 说是说gui 具体什么gui 不清楚
#include <opencv2/imgcodecs.hpp> // 图像头文件
#include <opencv2/imgproc.hpp> // 图像处理头文件
using namespace std;
using namespace cv;
float w = 250, h = 350; // 知道卡片的长宽分别为 2.5 cm 和  3.5 cm 因此我们按照比例进行放大所缩小即可
Mat matrix, imgWarp;
int main()
{
     string path = "resources/cards.jpg" ; // 导入图形的时候,先要在右边点击显示所有文件!!!
     Mat img = imread(path); // 在opencv 中所有的图像信息都使用Mat
     /*Queen 卡片*/
     Point2f src[4] = { {66,324},{338,279},{89,634},{404,571} }; // 原坐标点的像素是使用图片编辑器一个个试出来的
     Point2f dst[4] = { {0.0f,0.0f},{w,0.0f},{0.0f,h},{w,h} };
     matrix = getPerspectiveTransform(src, dst);  // 输入原位置比例及目标位置比例,返回Mat类型参量
     warpPerspective(img, imgWarp, matrix, Point(w, h)); // 根据上步获得的参量进行位置改变
     /*在原图像扑克四个顶胶绘制圆点**/
     for ( int i = 0; i < 4; i++)
     {
         circle(img, src[i], 10, Scalar(0, 0, 255),FILLED);
     }
 
     /*  king 卡片
     // Point2f 类即点的数据类型为 float
     Point2f src[4] = { {529,142},{771,190}, {405,395}, {674,457} };
     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));*/
     imshow( "Image" , img);
     imshow( "Image Warp" , imgWarp);
     waitKey(0); // 延时,0即相当于无穷大
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.

原文链接:https://blog.csdn.net/qq_42138448/article/details/115599240 。

最后此篇关于opencv实现视场转换的文章就讲到这里了,如果你想了解更多关于opencv实现视场转换的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com