opencv怎么实现视场转换

  介绍

这篇文章给大家分享的是有关opencv怎么实现视场转换的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

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

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

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

# include  & lt; iostream>   # include  & lt; opencv2/highgui.hpp>,//,说是说gui 具体什么gui 不清楚   # include  & lt; opencv2/imgcodecs.hpp>,//,图像头文件   # include  & lt; opencv2/imgproc.hpp>,//,图像处理头文件   using  namespace 性传播疾病;   using  namespace 简历;   float  w =, 250,, h =, 350,,//,知道卡片的长宽分别为,2.5,cm 和,,3.5,cm 因此我们按照比例进行放大所缩小即可   Mat 矩阵,,imgWarp;   int  main ()   {   ,,,string  path =,“资源/cards.jpg",//,导入图形的时候,先要在右边点击显示所有文件! ! !   ,,,Mat  img =, imread(路径),,//,在opencv 中所有的图像信息都使用Mat    ,,,/* Queen 卡片*/,,,Point2f  src[4],=,{,{66324},{338279},{89634},{404571},},,//,原坐标点的像素是使用图片编辑器一个个试出来的   ,,,Point2f  dst [4],=, {{0.0 0.0 f, f}, {0.0 w, f}, {0.0 f、h}, {w h},};   ,,,matrix =, getPerspectiveTransform (src, dst);,,//,输入原位置比例及目标位置比例,返回垫类型参量   ,,,warpPerspective (img, imgWarp,,矩阵,,点(w, h)),,//,根据上步获得的参量进行位置改变   ,,,/*在原图像扑克四个顶胶绘制圆点* */,,,for  (int 小姐:=,0;,小姐:& lt;, 4,,我+ +)   ,,,{   ,,,,,,,圆(img, src(我),10日,标量(0,0,255),填写);   ,,,}   ,   ,,,/*,,king 卡片   ,,,//,Point2f 类即点的数据类型为,float    ,,,Point2f  src [4],=, {, {529142}, {771190}, {405395},, {674457},};   ,,,Point2f  dst [4],=, {{0.0 0.0 f, f}, {0.0 w, f}, {0.0 f、h},, {w h},};   ,,,matrix =, getPerspectiveTransform (src, dst);   ,,,warpPerspective (img, imgWarp,,矩阵,,点(w, h)); */,,,imshow (“Image",, img);   ,,,imshow (“Image  Warp",, imgWarp);   ,,,waitKey(0);,//,延时,0即相当于无穷大   }

感谢各位的阅读!关于“opencv怎么实现视场转换”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

opencv怎么实现视场转换