当前位置: 首页 > news >正文

北京网站优化合作WordPress电影资源分享下载站

北京网站优化合作,WordPress电影资源分享下载站,网站建设和管理专业好不好,网站开发设计资讯若该文为原创文章#xff0c;转载请注明原文出处 本文章博客地址#xff1a;https://blog.csdn.net/qq21497936/article/details/136293833 各位读者#xff0c;知识无穷而人力有穷#xff0c;要么改需求#xff0c;要么找专业人士#xff0c;要么自己研究 红胖子(红模仿…若该文为原创文章转载请注明原文出处 本文章博客地址https://blog.csdn.net/qq21497936/article/details/136293833 各位读者知识无穷而人力有穷要么改需求要么找专业人士要么自己研究 红胖子(红模仿)的博文大全开发技术集合包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等持续更新中…点击传送门 OpenCV开发专栏点击传送门 上一篇《OpenCV开发笔记七十四OpenCV3.4.1ffmpeg3.4.8交叉编译移植到海思平台Hi35xx平台》 下一篇持续补充中… 前言 相机标定重映射可以进行插值映射从而矫正图像这是一种方法也有矩阵映射方法本篇使用重映射方式解说畸变矫正的计算原理。 Demo 横向纵向区域固定拉伸    横向纵向拉伸    右下角拉伸    相机畸变矫正 标定相机需要做两件事 纠正畸变的影响根据图像重构三位场景 纠正畸变的影响 Opencv提供了可以直接使用的矫正算法即通过输入原始图像和由函数cv::calibrateCamera()得到的畸变系数生成校正后的图像。注意这里可使用用cv::undistort()使用该算法直接完成所需任务也可以使用函数cv::iniitUndistorRectifyMap()和cv::remap()来更有效的处理。 矫正映射remap畸变映射 当进行图像矫正时必须指定输入图像的每个像素在输出图像中移动到的位置成为“矫正映射”畸变映射。 双通道浮点数表示方式 N x M的矩阵A中重映射由双通道浮点数的N x M的矩阵B表示对于图像A中的任意一点aPoint(i, j)映射为b1Point(i’, j’)和b2Point(i’, j’)在A中假设i2j3那么假设重映射之后4.55.5在B1中b1Point(i’, j’)值为4.5b2Point(i’, j’)值为5.5由于坐标是浮点数那么需要插值得到整数位置以及中间过渡的区域颜色平滑处理。    双矩阵浮点数表示方式 双矩阵浮点数表示N x M的矩阵A中重映射由一对N x M的矩阵B和C描述这里所有的N x M矩阵都是单通道浮点矩阵在A中的点aPoint(i, j)重映射矩阵B中的点bPoint(i,j)存储了重映射后的i’ 映射后的i坐标 重映射矩阵C中的点cPoint(i,j)存储了重映射后的j’映射后的j坐标。    定点表示方式 映射由双通道有符号整数矩阵即CV_16SC2类型表示。该方式与双通道浮点数表示方式相同但使用此格式要快得多笔者理解由浮点数插值改为整数插值会要快一些但是肯定双通道浮点数的表示方式图像效果会稍微好一些。    remap核心关键 在于得到插值的坐标系来映射新位置的x和y位置要渐近等所以本方法的核心关键在于得到标定后的矩阵得到映射矩阵的方式可以自己写算法也可以使用其他方式后续文章继续深入这块。 函数原型 void remap( InputArray src,OutputArray dst,InputArray map1,InputArray map2,int interpolation,int borderMode BORDER_CONSTANT,const Scalar borderValue Scalar());参数一InputArray类型的src一般为cv::Mat;参数二OutputArray类型的dst目标图像。它的大小与map1相同类型与src相同。参数三InputArray类型的map1它有两种可能的表示对象表示点xy的第一个映射或者表示CV_16SC2 , CV_32FC1 或CV_32FC2类型的x值。参数四InputArray类型的map2它也有两种可能的表示对象而且他是根据map1来确定表示哪种对象。若map1表示点xy时这个参数不代表任何值否则表示CV_16UC1 , rCV_32FC1类型的y值第二个值。参数五int类型的interpolation使用的插值方法参数六int类型的borderMode边界处理方式参数七Scalar类型的borderValue重映射后离群点的背景需要broderMode设置为BORDER_CONSTRANT时才有效。离群点当图片大小为400x300那么对应的map1和map2范围为0399、0299小于0或者大于299的则为离散点使用该颜色填充; Demo源码 void OpenCVManager::testRemap2() {std::string srcFilePath D:/qtProject/openCVDemo/openCVDemo/modules/openCVManager/images/25.jpg;// 步骤一读取文件cv::Mat srcMat cv::imread(srcFilePath);// 缩放一下int width 400;int height 400;cv::resize(srcMat, srcMat, cv::Size(width, height));// 步骤二映射矩阵cv::Mat mapX;cv::Mat mapY;mapX.create(srcMat.size(), CV_32FC1);mapY.create(srcMat.size(), CV_32FC1);// 算法这里400x400将0~100放大至0~200将100~400映射为200~400// 算法这里400x400将0~100放大至0~200将100~400映射为200~400 #if 0for(int row 0; row srcMat.rows; row){for(int col 0; col srcMat.cols; col){ // if(true)if(col 200){mapX.atfloat(row, col) static_castfloat(col * 1.0f / 2);}else{mapX.atfloat(row, col) static_castfloat(100 (col - 200) * 1.0f / 2 * 3);} // if(true)if(row 200){mapY.atfloat(row, col) static_castfloat(row * 1.0f / 2);}else{mapY.atfloat(row, col) static_castfloat(100 (row - 200) * 1.0f / 2 * 3);}}} #endif #if 0for(int row 0; row srcMat.rows; row){for(int col 0; col srcMat.cols; col){// 这里是 0~200 缩放为 0~100 缩小 // 比例系数if(col 0){mapX.atfloat(row, col) static_castfloat(col);}else if(col 200){mapX.atfloat(row, col) static_castfloat(col * 1.0f / 2 * (col * 1.0f / 199));}else{mapX.atfloat(row, col) static_castfloat(col * 1.0f / 2 * (col * 1.0f / 199));}if(row 0){mapY.atfloat(row, col) static_castfloat(row);}else if(row 200){mapY.atfloat(row, col) static_castfloat(row * 1.0f / 2 * (row * 1.0f / 199));}else{mapY.atfloat(row, col) static_castfloat(row * 1.0f / 2 * (row * 1.0f / 199));}}} #endif #if 1for(int row 0; row srcMat.rows; row){for(int col 0; col srcMat.cols; col){// 比例系数 0~1.0400~800/400mapX.atfloat(row, col) static_castfloat(col * ((col 1 400) * 1.0f / 800));mapY.atfloat(row, col) static_castfloat(row * ((row 1 400) * 1.0f / 800));}} #endifcv::Mat dstMat;cv::remap(srcMat,dstMat,mapX,mapY,CV_INTER_LINEAR,cv::BORDER_CONSTANT,cv::Scalar(255, 0, 0));cv::imshow(1, srcMat);cv::imshow(_windowTitle.toStdString(), dstMat);cv::waitKey(0); }对应工程模板v1.66.0 上一篇《OpenCV开发笔记七十四OpenCV3.4.1ffmpeg3.4.8交叉编译移植到海思平台Hi35xx平台》 下一篇持续补充中… 本文章博客地址https://blog.csdn.net/qq21497936/article/details/136293833
http://www.ho-use.cn/article/10818064.html

相关文章:

  • 徐州建站服务网站建设属于哪类工作
  • 如何看网站有没有备案网站安全防黑联盟
  • 做响应式网站设计师需要做什么丰顺最新新闻今天
  • 视频网站开发公司游戏开发引擎
  • 阿里云网站备案多少天wordpress页面相册
  • 权威的网站建设公司广州网站推广模板
  • 浪潮云网站建设校园类网站模板
  • 临沂做过网站的公司辽宁省建设安全监督网网站
  • 做网站开发的需求文档怎样建立自己的微信公众号
  • 怎么做外贸网站推广网站建设中的形象满意指的是销售
  • 做pc端网站行情写出电子商务网站的建设流程
  • 许昌工程建设信息网站人才网官网登录
  • 网页具有动画网站建设技术wordpress页面模版放在那个文件夹
  • 自己做网站可以赚钱么装wordpress需要配置apache
  • 怎样做淘宝联盟的网站建设网站资料在哪收集
  • seo站外推广动态asp.net网站开发教程
  • 淮北市建设局网站盈利网站备案
  • 网站建设外包注意事项学校网站建设开题报告
  • congqin网站建设简约大方网站
  • 网站建设趋势那些市区做网站群
  • 国外大学网站建设比较网站会员注册模板
  • 创办网站的步骤广东百度推广的代理商
  • 建设网站应注意什么网站还建设 域名可以备案吗
  • 婚庆网页设计作品dwseo如何优化
  • php自己做网站吗网站建设项目意义
  • 长治网站制作小程序ui交互设计作品
  • 建设公司网站法律声明网站开发职业工资
  • 网站域名ip地址查询天津网站优化步骤
  • app推荐网站网站如何做图片自动切换
  • 网上营销型网站建设官方网站请示