精华内容
下载资源
问答
  • 计算机视觉——棋盘标定法获取相机内参参一、原理相机标定目的相机标定的输入相机标定的输出相机标定策略相机拍摄图像变换过程相机内参相机参二、环境三、数据集四、运行结果与分析角点提取校准重新投影错误五...

    一、原理

    相机标定目的

    为确定空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系,必须建立相机成像的几何模型,这些几何模型参数就是相机参数。这个求解参数(内参、外参、畸变参数)的过程就称之为相机标定。无论是在图像测量或者机器视觉应用中,相机参数的标定都是非常关键的环节,其标定结果的精度及算法的稳定性直接影响相机工作产生结果的准确性。因此,做好相机标定是做好后续工作的前提,提高标定精度是科研工作的重点所在。 畸变(distortion)是对直线投影(rectilinear projection)的一种偏移。简单来说直线投影是场景内的一条直线投影到图片上也保持为一条直线。畸变简单来说就是一条直线投影到图片上不能保持为一条直线了,这是一种光学畸变(optical aberration),可能由于摄像机镜头的原因。

    相机标定的输入

    标定图像上所有内角点的图像坐标,标定板图像上所有内角点的空间三维坐标(一般情况下假定图像位于Z=0平面上)。

    相机标定的输出

    摄像机的内参、外参系数。

    相机标定策略

    1. 光学标定:利用已知的几何信息(如定长棋盘格)实现参数求解。
    2. 自标定:在静态场景中利用structure from motion估算参数。
      本次实验中使用光学标定法

    相机拍摄图像变换过程

    设P=(X,Y,Z)为场景中的一点,在针孔相机模型中,其要经过以下几个变换,最终变为二维图像上的像点p=(μ,ν):

    1. 将P从世界坐标系通过刚体变换(旋转和平移)变换到相机坐标系,这个变换过程使用的是相机间的相对位姿,也就是相机的外参数。
    2. 从相机坐标系,通过透视投影变换到相机的成像平面上的像点p=(x,y)。
    3. 将像点p从成像坐标系,通过缩放和平移变换到像素坐标系上点p=(μ,ν)。

    相机内参

    相机内部参数/内方位元素:焦距、像主点坐标、畸变参数
    从相机坐标系,通过透视投影变换到相机的成像平面上的像点,将该变换过程整理为矩阵相乘的形式:
    内参
    将矩阵K称为相机的内参数,
    K
    为了不失一般性,可以在相机的内参矩阵上添加一个扭曲参数s,该参数用来表示像素坐标系两个坐标轴的扭曲。则内参数K变为
    K
    对于大多数标准相机来说,可将扭曲参数s设为0

    相机外参

    将P从世界坐标系通过刚体变换(旋转和平移)变换到相机坐标系,这个变换过程使用的是相机间的相对位姿,也就是相机的外参数。
    相机外部参数/外方位元素: 旋转、平移
    用矩阵表示:
    外参
    t表示平移的量,R表示x,y,z方向的旋转参数,矩阵与平移量相加就可得出变换后的矩阵,与旋转参数相乘后可得旋转后的矩阵
    外参
    旋转参数R:
    R

    二、环境

    win10,64位,MATLAB2018b,手机型号:小米8,计算手机内参:python3.7

    三、数据集

    拍摄15张不同角度的黑白棋盘格作为数据集
    数据集

    四、运行结果与分析

    角点提取

    选取所有图像的角点,以其中一张图像选取过程展示如下:
    单击矩形棋盘图案上的四个极端角:
    结果
    自动计算两个方向上的平方数,并在不失真的情况下显示预测的网格角:
    结果
    预测的角点与真实的图像角点足够接近。因此,不必通过输入对径向畸变系数的猜测来“帮助”程序检测图像拐角。使用这些位置作为初始猜测自动提取角。
    自动提取图像的角,并显示如下(角点周围的蓝色方框显示了角点查找器窗口的界限):
    结果
    本次实验拍摄图像都比较清晰,没有出现失真的情况,因此网格中的某些预测角距离实际网格角不远,没有错误的提取。如果图像失真,网格中的一些预测角与实际网格角距离较远,为了帮助系统更好地猜测拐角位置,要手动输入对畸变系数的猜测,然后再进行预测,如果接下来预测点与真实点距离比较近则预测成功,否则需要再次输入畸变系数进行尝试。

    校准

    校准分为两个步骤:首先进行初始化,然后进行非线性优化。
    初始化步骤基于不包含任何镜头畸变的校准参数计算封闭式解
    非线性优化步骤将所有校准参数上的总重投影误差(最小二乘)最小化。
    初始化步骤得出的参数结果:
    结果
    非线性优化后得出的参数结果:
    结果
    其中:fc是横纵方向的焦距,cc表示主光点的偏移,kc是畸变参数,这几个参数是相机内参中的重要参数。
    外部参数:
    “以相机为中心”
    结果
    “以世界为中心”
    结果

    重新投影错误

    结果
    以彩色编码的叉号形式显示:
    错误
    在大量图形上,重投影误差非常大。原因是,我们在提取某些失真的图像上的角点时并没有做非常仔细的工作。

    内参矩阵

    小米8手机的内参矩阵为
    结果

    五、总结

    通过结合matlab与python的求解,很顺利的得出了手机相机的内参矩阵以及棋盘格标定的重要参数和外部参数,同时也计算了重投影错误。可以看出第一次计算重投影错误发现了很多错误,这是因为在一个或多个图像上错误提取了拐角,这也是检查重投影错误的重要意义。在这种情况下,可以使用不同的窗口大小(更大或更小)重新计算特定图像的角,然后特定角的重投影误差就会变小。

    展开全文
  • 并行计算:并行计算是相对于串行计算来说的。可分为时间上的并行和空间上的并行。 时间上的并行就是指流水线技术,而空间上的并行则是指用多个处理器并发的执行计算。例如基于CUDA编程。并行计算的目的就是提供单...

    转自: http://blog.163.com/litianyichuanqi@126/blog/static/1159794412012387453794/


    并行计算:并行计算是相对于串行计算来说的。可分为时间上的并行和空间上的并行。 时间上的并行就是指流水线技术,而空间上的并行则是指用多个处理器并发的执行计算。例如基于CUDA编程。并行计算的目的就是提供单处理器无法提供的性能(处理器能力或存储器),使用多处理器求解单个问题

    总结:并行的主体 -- 处理器;进程/线程级并行。



    分布式计算:分布式计算研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给许多计算机进行处理,最后把这些计算结果综合起来得到最终的结果。最近的分布式计算项目已经被用于使用世界各地成千上万位志愿者的计算机的闲置计算能力,通过因特网,可以分析来自外太空的电讯号,寻找隐蔽的黑洞,并探索可能存在的外星智慧生命等。

    总结:并行的主体 -- 计算机;各个计算机并行


    并行计算与分布式计算的区别:(1)简单的理解,并行计算借助并行算法和并行编程语言能够实现进程级并行(如MPI)和线程级并行(如openMP)。而分布式计算只是将任务分成小块到各个计算机分别计算各自执行。(2)粒度方面,并行计算中,处理器间的交互一般很频繁,往往具有细粒度和低开销的特征,并且被认为是可靠的。而在分布式计算中,处理器间的交互不频繁,交互特征是粗粒度,并且被认为是不可靠的。并行计算注重短的执行时间,分布式计算则注重长的正常运行时间。(3)联系,并行计算和分布式计算两者是密切相关的。某些特征与程度(处理器间交互频率)有关,而我们还未对这种交叉点(crossover point)进行解释。另一些特征则与侧重点有关(速度与可靠性),而且我们知道这两个特性对并行和分布两类系统都很重要。(4)总之,这两种不同类型的计算在一个多维空间中代表不同但又相邻的点。


    集群计算:计算机集群使将一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作。在某种意义上,他们可以被看作是一台计算机集群系统中的单个计算机通常称为节点,通常通过局域网连接,但也有其它的可能连接方式。集群计算机通常用来改进单个计算机的计算速度和/或可靠性。一般情况下集群计算机比单个计算机,比如工作站或超级计算机性价比要高得多。根据组成集群系统的计算机之间体系结构是否相同,集群可分为同构与异构两种。集群计算机按功能和结构可以分为,高可用性集群(High-availability (HA) clusters)、负载均衡集群(Loadbalancing clusters)、高性能计算集群(High-performance (HPC)clusters)、网格计算(Grid computing)。
    • 高可用性集群:一般是指当集群中有某个节点失效的情况下,其上的任务会自动转移到其他正常的节点上。还指可以将集群中的某节点进行离线维护再上线,该过程并不影响整个集群的运行。
    • 负载均衡集群:负载均衡集群运行时,一般通过一个或者多个前端负载均衡器将工作负载分发到后端的一组服务器上,从而达到整个系统的高性能和高可用性。这样的计算机集群有时也被称为服务器群(Server Farm)。 一般高可用性集群和负载均衡集群会使用类似的技术,或同时具有高可用性与负载均衡的特点。Linux虚拟服务器(LVS)项目在Linux操作系统上提供了最常用的负载均衡软件。
    • 高性能计算集群: 高性能计算集群采用将计算任务分配到集群的不同计算节点儿提高计算能力,因而主要应用在科学计算领域。比较流行的HPC采用Linux操作系统和其它一些免费软件来完成并行运算。这一集群配置通常被称为Beowulf集群。这类集群通常运行特定的程序以发挥HPC cluster的并行能力。这类程序一般应用特定的运行库, 比如专为科学计算设计的MPI库。HPC集群特别适合于在计算中各计算节点之间发生大量数据通讯的计算作业,比如一个节点的中间结果或影响到其它节点计算结果的情况。

    网格计算:网格计算是分布式计算的一种,也是一种与集群计算非常相关的技术。如果我们说某项工作是分布式的,那么,参与这项工作的一定不只是一台计算机,而是一个计算机网络,显然这种“蚂蚁搬山”的方式将具有很强的数据处理能力。网格计算的实质就是组合与共享资源并确保系统安全。网格计算通过利用大量异构计算机的未用资源(CPU周 期和磁盘存储),将其作为嵌入在分布式电信基础设施中的一个虚拟的计算机集群,为解决大规模的计算问题提供一个模型。网格计算的焦点放在支持跨管理域计算 的能力,这使它与传统的计算机集群或传统的分布式计算相区别。网格计算的目标是解决对于任何单一的超级计算机来说仍然大得难以解决的问题,并同时保持解决 多个较小的问题的灵活性。这样,网格计算就提供了一个多用户环境。


    集群计算与网格计算的区别:(1)简单地,网格与传统集群的主要差别是网格是连接一组相关并不信任的计算机,它的运作更像一个计算公共设施而不是一个独立的计算机。网格通常比集群支持更多不同类型的计算机集合。(2)网格本质上就是动态的,集群包含的处理器和资源的数量通常都是静态的。在网格上,资源则可以动态出现,资源可以根据需要添加到网格中或从网格中删除。(3) 网格天生就是在本地网、城域网或广域网上进行分布的。网格可以分布在任何地方。而集群物理上都包含在一个位置的相同地方,通常只是局域网互连。集群互连技 术可以产生非常低的网络延时,如果集群距离很远,这可能会导致产生很多问题。物理临近和网络延时限制了集群地域分布的能力,而网格由于动态特性,可以提供 很好的高可扩展性。(4)集群仅仅通过增加服务器满足增长的需求。然而,集群的服务器数量、以及由此导致的集群性能是有限的:互连网络容量。也就是说如果一味地想通过扩大规模来提高集群计算机的性能,它的性价比会相应下降,这意味着我们不可能无限制地扩大集群的规模。 而网格虚拟出空前的超级计算机,不受规模的限制,成为下一代Internet的发展方向。(5)集群和网格计算是相互补充的。很多网格都在自己管理的资源中采用了集群。实际上,网格用户可能并不清楚他的工作负载是在一个远程的集群上执行的。尽管网格与集群之间存在很多区别,但是这些区别使它们构成了一个非常重要的关系,因为集群在网格中总有一席之地—— 特定的问题通常都需要一些紧耦合的处理器来解决。然而,随着网络功能和带宽的发展,以前采用集群计算很难解决的问题现在可以使用网格计算技术解决了。理解网格固有的可扩展性和集群提供的紧耦合互连机制所带来的性能优势之间的平衡是非常重要的。


    云计算:云计算是最新开始的新概念,它不只是计算等计算机概念,还有运营服务等概念了。它是分布式计算、并行计算和网格计算的发展,或者说是这些概念的商业实现。云计算不但包括分布式计算还包括分布式存储和分布式缓存。分布式存储又包括分布式文件存储和分布式数据存储。


    云计算与并行、分布式、网格和集群计算的区别:云计算是从集群技术发展而来,区别在于集群虽然把多台机器联了起来,但其某项具体任务执行的时候还是会被转发到某台服务器上,而云可以简单的认为是任务可以被分割成多个进程在多台服务器上并行计算,然后得到结果,好处在于大数据量的操作性能非常好。云可以使用廉价的PC服务器 ,可以管理大数据量与大集群,关键技术在于能够对云内的基础设施进行动态按需分配与管理。云计算与并行计算、分布式计算的区别,以计算机用户来说,并行计算是由单个用户完成的,分布式计算是由多个用户合作完成的,云计算是没有用户参与,而是交给网络另一端的服务器完成的。
    展开全文
  • 电离层TEC网主要计算方法

    千次阅读 2018-12-04 22:36:01
    1、TEC网主要计算方法  利用GNSS伪距和载波相位反演视线方向上电离层TEC通常是一组离散的数据,计算全球电离层TEC网(GIM)时必须通过一定的数学方法将其拓展至全球并生成固定网点垂直方向上的电离层TEC. ...

    1、TEC格网主要计算方法

      利用GNSS伪距和载波相位反演视线方向上电离层TEC通常是一组离散的数据,计算全球电离层TEC格网(GIM)时必须通过一定的数学方法将其拓展至全球并生成固定格网点垂直方向上的电离层TEC.

      向IGS正式提交的产品的电离层分析中心包括:欧洲定轨中心(Center for Orbit Determination in Europe, CODE)、美国喷气推进实验室(Jet Propulsion Laboratory, JPL)、欧洲航天局(European Space Agency, ESA)、西班牙加泰罗尼亚理工大学(Universitat Politècnica de Catalunya, UPC)和中国科学院(CAS),其中中国科学院是2016年2月通过评估成为IGS全球第五个电离层分析中心。
      IGS通过对各分析中心GIM加权得到最终产品.

      各大分析中心计算GIM的方法有两类:
    (1)基于函数模型:在电离层薄层假设下采用特定数学函数描述全球电离层TEC变化,求解模型系数,计算固定格网点处的垂直电离层TEC。


    (2)基于离散格网:将全球电离层划分为固定的二维或三维单元,并假设单元格内电子密度均匀不变;在此基础上,建立视线方向电离层TEC与单元格内电子密度之间的关系,求解单元格内的电子密度;最后,积分得到固定格网点处的垂直电离层TEC。


    函数模型主要包括球谐函数和广义三角级数函数两种,离散格网主要包括球面三角和双层均匀格网

    2、不同分析中心电离层TEC格网精度对比

      IGS电离层工作组此次评估了从1998年9月1日至2015年11月30日(共计约18年)的电离层TEC格网,上述时段涵盖了两个太阳活动高年和低年。
      参与GIM计算的基准站数量日益增多,从最初100个增加至250个左右;CAS分析中心由于是补算的1998—2015年GIM,所采用基准站数量要略多于其他分析中心.JPL为了提高计算效率,筛选出部分性能较好且分布合理的基准站参与计算,因此,JPL基准站数量较其他分析中心相对较少.需要注意的是,==IGS基准站主要分布在大陆,并且北半球的数量明显多于南半球==.


      以GPS基准站实测电离层TEC、IGS最终GIM、测高卫星电离层TEC为参考,从多个角度分析各分析中心GIM的精度.其中,由于GPS基准站实测电离层TEC也参与了GIM产品计算,评估结果主要表征GIM的内符合精度;IGS最终GIM是根据CODE、JPL、UPC提供的GIM,通过加权得到的,以此为参考可分析不同GIM之间的一致性.测高卫星电离层TEC是独立于卫星导航系统之外的观测数据,且主要分布在海洋上空,而参与GIM计算的基准站大部分分布在大陆上,可以较好地评估GIM的外符合精度.

    (1)与基准站实测电离层TEC对比

      在全球范围内基本均匀地选择36个基准站,利用各基准站上2002—2014年实测电离层TEC对不同分析中心GIM进行评估,其中,卫星和接收机差分码偏差参数直接采用IGS发布值进行修正。利用GIM计算卫星视线方向上的电离层TEC,统计该计算值与实测电离层TEC之差的均值和标准差,用以表征GIM相对于实测电离层TEC的内符合精度。


      从均值上看,JPL-GIM存在较为明显的系统性偏差,约2.0~4.0TECu,特别是在北半球部分基准站上,UPC-GIM在2002—2003年存在约1.5TECu的系统性偏差;于2003年左右优化了处理策略,系统性偏差基本消失。


      从 标准差 上看,各分析中心GIM内符合精度在2002—2003年要明显差于其他年份,这一方面由于2002—2003年是电离层活动高年,全球电离层TEC建模精度相对较低;另一方面,随着全球基准站数量增多以及不同分析中心对GIM计算策略的完善,各分析中心GIM在电离层活动高年2011—2014年的内符合精度得到显著改善。


      从2002—2014年平均统计结果上看,CODE-GIM和CAS-GIM基本不存在系统性偏差,内符合精度约为2.4TECu;UPC-GIM和ESA-GIM分别存在约0.6TECu和-0.3TECu的系统性偏差,内符合精度分别为3.0TECu和4.2TECu;JPL-GIM系统性偏差较大(约2.9TECu),但是内符合精度较高(约2.5TECu)。

    内符合精度:内符合精度是指的仪器多次测量对比的较差,在这里的计算实际上取标准差的平均值。

    不同分析中心GIM差异对比

      统计各分析中心GIM相对于IGS最终产品之间的差异,可反映出不同分析中心GIM之间的一致性。不同分析中心GIM在电离层活动高年时的差异较低年时要大,并且该差异在电离层活动高年2000—2002年较2013—2015年更显著。


      这说明随着参与计算的全球基准站数量增多,不同方法之间的差异越来越小。


      在IGS提供GIM初期(1998—2002年),从采用球谐函数模型的三家分析中心来看,CODE-GIM和CAS-GIM差异较小,ESA-GIM与其他分析中心产品差异较大,这主要是由于ESA仅采用了60 ~ 100个左右的基准站,而CODE和CAS分别采用了100~150个左右的基准站,且不同分析中心所采用球谐函数的阶次也不完全一致。


      采用离散格网模型的JPL-GIM和UPC-GIM与IGS-GIM差异相对较大,初步分析其主要是由于IGS基准站分布不均匀,导致海洋上空无观测数据覆盖,不同方法计算的GIM在该区域存在较大差异


      2003—2006年,不同分析中心对电离层建模策略进行了优化和完善,同时,电离层活动相对较为平静,各分析中心GIM差异性变小;除ESA之外,各分析中心GIM相对于IGS-GIM的差异在1.5 ~ 3.0TECu之间.ESA分析中心于2006年调整球谐函数阶次与CODE一致,自此之后,ESA-GIM与其他分析中心GIM趋于一致。

    (2)与测高卫星电离层TEC对比

      测高卫星发射双频信号经海洋表面反射接收,可用来反演信号传播路径上的电离层TEC。
      目前国际上主要有TOPEX、JASON1和JASON2测高卫星提供上述观测数据。TOPEX卫星电离层观测基本均匀分布在纬度±66°范围内的海洋上空。


      测高卫星电离层TEC与GIM通常存在系统性偏差(约2~5TECu),该偏差一方面是由于测高卫星测量的是从海洋表面至卫星轨道高度以下的电离层TEC,没有包含测高卫星轨道上空的电离层电子密度,而GIM电离层TEC包含了整层电离层电子密度;另一方面,测高卫星的信号频率、跟踪和测量方法与卫星导航不完全相同,从而使得两套测量设备之间也存在系统性偏差。


      测高卫星电离层TEC是目前独立于GNSS之外,分辨率较高、覆盖性较广、连续观测时间最长的电离层数据,因此,测高卫星电离层TEC已成为评估GIM产品精度的有效数据之一。

    采用TOPEX、JASON1和JASON2测高卫星在2000—2015年期间的有效观测数据,评估不同分析中心GIM精度:
    (JASON1、JASON2和TOPEX卫星有效观测数据时间约为2002—2013、2008—2015、2001—2008.)

      尽管测高卫星观测数据仅包含了轨道高度以下的电离层TEC,但是,除JPL-GIM相对测高卫星电离层TEC偏大约1.0~ 2.0TECu以外,其他分析中心GIM相对测高卫星电离层TEC仍偏小约2.0~3.0TECu。

      这可能是由于GIM计算海洋上空电离层TEC时通常需要依赖于一定外推算法,在较大区域内的外推极易产生系统性偏差.上述系统性偏差在不同测高卫星之间存在显著差异,但是,任意两个测高卫星对应的系统性偏差之差在不同GIM之间基本一致。

      这说明不同测高卫星电离层TEC观测中也存在系统性的偏差,其可能是由于测量所采用的设备不同造成的。

      从长期变化上看,GIM与测高卫星电离层TEC差异的均值及标准差表现出明显的周期变化特性。

      总体上看,CODE-GIM、CAS-GIM、UPC-GIM和JPL-GIM精度基本相当,约为4.0~4.5TECu.CODE-GIM、CAS-GIM和UPC-GIM相对于TOPEX的系统性偏差约为-3.0TECu,相对于JASON1的系统性偏差约为-1.0TECu,相对于JASON2的系统性偏差约为0.5TECu;JPL-GIM相对于TOPEX、JASON1和JASON2的系统性偏差依次大约为-0.8TECu、1.0TECu和2.8TECu;ESA-GIM精度最差,约为5.6TECu;特别是,ESA在调整球谐函数模型阶次之前(2001—2006年)的标准差相对较大,最大可达15TECu左右。

    3、结论

      (1)随着全球基准站数量日益增多,不同分析中心GIM精度和可靠性越来越高,内符合精度从4.5~ 7.0TECu提高至2.5~ 3.5TECu;基于不同方法计算GIM的差异日渐缩小,从1998年的3.0~ 4.5TECu降低至2015年2.0~3.5TECu。
      (2) 不同分析中心GIM与测高卫星电离层TEC之间存在系统性偏差,且不同测高卫星之间存在较大差异.以TOPEX、JASON1和JASON2为例,JPL-GIM系统性偏差约为-1.0~ 3.0TECu,其他分析中心GIM系统性偏差约为-3.0~ 0.5TECu;除ESA-GIM之外,其他分析中心GIM精度为4.0~4.5TECu;
      (3) IGS于2012年启动了GIM重新处理计划,如何有效地实现多模卫星导航、测高卫星等电离层数据的有效融合,提高IGS最终GIM精度和时空分辨率,以及构建全球高精度实时GIM将是IGS电离层工作组未来几年的工作重点.CAS全球电离层分析中心于近期正式对外发布了15 min分辨率的GIM(ftp://ftp.gipp.org.cn/product/ionex/15min/)

    展开全文
  • 采用张正友相机标定的方法,通过对黑白棋盘角点计算相机内外参数,传入所有图片各自角点的三维、二维坐标,相机标定。使用cv2.calibrateCamera()这个函数。它返回相机矩阵、畸变系数、旋转和平移向量等。
  • 计算三角网格的顶点法向量

    千次阅读 2016-03-11 14:38:33
    前段时间基本上完成了场景编辑器的大部分工作,现在已经可以用它生成自己需要的网格模型了。...使用计算出的顶点法向量的渲染:   转自: http://blog.csdn.net/BugRunner/article/details/5306866
     前段时间基本上完成了场景编辑器的大部分工作,现在已经可以用它生成自己需要的网格模型了。目前,在编辑器中对生成的网格是指定面的法向量,这对于用场景生成BSP等相关操作已经足够了。不过为了测试BSP的健壮性,准备实现一下基于BSP的光线跟踪算法来看看效果,于是只是指定面的法向量就显得不太够用,因为在逐像素作着色时就需要对面上各个点的法向量进行插值,因此就需要各个顶点的法向量。查了下相关的资料,找到了一种简单但却有效的顶点法向量生成算法。 
    

    最简单也是最直接的求顶点的法向量的方法是遍历此顶点所关联的所有三角形,将这些三角形上的法向量单位化后叠加,然后求出法向量的均值即可。

    vertexNormal = 0,0,0;

    foreach triangle connect to current vertex;

       vertexNormal += triangleNormal;

    vertexNormal /= connectedTriangleNums;

    但这样求出的法向量往往效果不好,特别是当一些很小的多边形共面时。为了解决这个问题就需要使各个三角形并不是简单的等比例贡献法向量。直观上很容易发现,每个三角形与顶点相关联的那个角的大小是变化的,因此就可以使用此角度的大小来作为单个三角形对顶点法向量的贡献因子。

    vertexNormal = 0,0,0;
    totalAngle = 0;
    foreach triangle connect to current vertex;

    angle = acos(dot(edge1 , edge2));
       vertexNormal += trangleNormal * angle;
       totalAngle += angle;
    vertexNormal /= totalAngle;

    在实现时要注意,使用的角为关联当前顶点的那个角。

     

    末使用顶点法向量进行的渲染:

    末使用顶点法向量的渲染

     

    使用计算出的顶点法向量的渲染:

    使用计算出的顶点法向量的渲染

     

    转自:http://blog.csdn.net/BugRunner/article/details/5306866

    展开全文
  • ”张正友标定法”是指张正友教授1998年提出的单平面棋盘的摄像机标定方法。文中提出的方法介于传统标定法和自标定法之间,但克服了传统标定法需要的高精度标定物的缺点。相对于自标定而言,提高了精度,便于操作。...
  • 使用cvFindExtrinsicCameraParams2()函数在已知相机内参数的前提下计算棋盘原点的三维坐标
  • 这一次将引入相机参,进行参的标定计算和基于参+内参的鱼眼相机透视变换。 1.相机参的定义 世界坐标系映射至相机坐标系时,需要知道世界坐标系相对于相机坐标系的变换矩阵(平移矩阵R +旋转向量T ),对于...
  • 并行计算:并行计算是相对于串行计算来说的。可分为时间上的并行和空间上的并行。 时间上的并行就是指流水线技术,而空间上的并行则是指用多个处理器并发的执行计算。并行计算的目的就是提供单处理器无法提供的性能...
  • 相机参数是在世界坐标系中的参数,比如相机的位置、旋转方向等。 定义四个坐标系的意义,世界坐标系(参考坐标系)、摄像机坐标系 、 图像物理坐标系和像素坐标系。(1)世界坐标系就是物体在真实世界中的坐标,...
  • 文章目录一、相机畸变1、畸变现象2、畸变类型二、相机标定1、畸变校正2、张正友棋盘标定法2、1棋盘标定法介绍2、2 棋盘标定流程2、3 标定工具2、4标定实现 一、相机畸变 1、畸变现象 我们都希望自己的相机...
  • 相机参数是在世界坐标系中的参数,比如相机的位置、旋转方向等。相机标定(或摄像机标定):一句话就是世界坐标到像素坐标的映射,当然这个世界坐标是我们人为去定义的,标定就是已知标定控制点的世界坐标和像素...
  • 请勿转载.claymanBlog:http://blog.csdn.net/soilworkclayman_joe@yahoo.com.cn 又一篇学习笔记,参考Mathematics for 3D Game Programming and Computer Graphics和ShaderX4上一篇关于tangent ...对于计算时需要分裂
  • UPS电源配电池的计算方法

    千次阅读 2011-01-14 14:53:00
    【引用】UPS电源配电池的计算方法 供电配电2010-12-24 15:06:17阅读11评论0 字号:大中小 订阅和大家分享这篇日志,我的看法是: <br />  原文地址:UPS电源配电池的计算方法 原文作者:冰影随风...
  • 计算机视觉-相机内参数和参数

    万次阅读 多人点赞 2016-10-28 10:39:17
    相机参数是在世界坐标系中的参数,比如相机的位置、旋转方向等。 相机标定(或摄像机标定): 在图像测量过程以及机器视觉应用中,为确定空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系,必须...
  • 计算机三级网络技术考过指南

    万次阅读 多人点赞 2018-03-10 19:18:36
    也就是 0 ~ 255,即 0000 0000 ~ 1111 1111(每四位空一便于观察) 我做题前在草稿纸上先这样画 这样,比如说我看见 1001 1000 这个数,就知道这是 128+16+8 对应的数。 反过来,十进制转换二进制也可以...
  • 高性能计算HPC脱去贵族外衣

    千次阅读 2009-09-06 17:15:00
    作者:魏珺原文:http://www.cioinsight.com.cn/html/article/2009/06/1688.html 随着科技的不断进步,过去仅仅是在气象、地质勘探、空气动力... 谈到高性能计算,最为典型的代表莫过于气象、地质勘探行业的应用。气
  • 【引用】UPS电源配电池的计算方法 供电配电2010-12-24 15:06:17阅读11评论0 字号:大中小 订阅和大家分享这篇日志,我的看法是: <br />  原文地址:UPS电源配电池的计算方法 原文作者:冰影随风...
  • 网格基本知识

    千次阅读 2008-09-09 21:46:00
     网格是从电力网格中借鉴过来的一个概念,原本是希望计算力和计算资源能够象电力一样,“打开电源开关就可以使用”,不用去关心是谁、如何提供的这些服务。 网格的目标是抽象并量化计算资源,随时随地能够通过网络...
  • Delaunay三角形网格

    千次阅读 2012-02-10 17:06:26
    【摘要】本文探讨了以平面散点集逐点插入的Delaunay三角化方法为基础,在三角化过程中采用一定策略,将其改进成为一种简单高效的... 三角剖分是计算几何领域的主要课题之一,并具有广泛的应用前景。在计算机图形学、
  • 要想解数独,需要进行计算,图片格式的数字肯定是不行的,所以必须把图片上的数字转换为实实在在的数字才能进行计算。要得到实实在在的数字,我们需要做的是对图片上的数字进行提取和识别。本文先说第一步,图片中...
  • 此文觉得非常有逻辑性,而且有很多量子计算方面的常识介绍。大部分资料都是网络公开的,这里做了一个汇集。因此,转发到博客里。 文章目录 (一)量子是个啥? (二)各种量子技术都是啥? (三)量子计算机有啥用?...
  • Nav导航网格寻路

    万次阅读 多人点赞 2015-04-02 15:52:13
    对于有公共端点的线段p0p1和p1p2,通过计算(p2 - p0) × (p1 - p0)的符号便可以确定折线段的拐向:  若(p2 - p0) × (p1 - p0) > 0,则p0p1在p1点拐向右侧后得到p1p2。  若(p2 - p0) × (p1 - p0) ,则p0p1在p1...
  • GIS 网格索引算法

    千次阅读 2016-11-21 15:49:45
    (1)创建:通过数据的统计特征计算出一个网格尺度,对每一个实体按网格进行分解,在其落入的所有网格中追加该实体记录,直到所有的实体处理完毕。 (2)重建索引:随着数据表中实体的编辑、增加及删减,重新对...
  • Unity网格编程篇(二) 非常详细的Mesh编程入门文章

    万次阅读 多人点赞 2017-08-18 14:42:53
    使用协程计算他们的位置 利用三角形确定一个面 自动生成法线 添加纹理坐标和切线 在这篇教程中我们将利用顶点和三角面创建一个网格。 这篇博客的原文地址:...
  • 网格基础概念(1)

    千次阅读 2006-03-14 23:58:00
    网格是从电力网格中借鉴过来的一个概念,原本是希望计算力和计算资源能够象电力一样,“打开电源开关就可以使用”,不用去关心是谁、如何提供的这些服务。网格的目标是抽象并量化计算资源,随时随地能够通过网络...
  • 六边形网格

    万次阅读 多人点赞 2015-12-04 13:18:39
    函数进行六个顶点的计算.要画六边形,则使用计算出来的这些顶点进行画线操作即可. 横向与纵向模式下的区别是x跟y换掉了.横向模式下,角度是:0,60,120,180,240,300 纵向模式下角度是:30,90,150,210,270,330. ...
  • 计算几何题目

    千次阅读 2014-05-25 16:08:59
    计算几何题的特点与做题要领:1.大部分不会很难,少部分题目思路很巧妙2.做计算几何题目,模板很重要,模板必须高度可靠。3.要注意代码的组织,因为计算几何的题目很容易上两百行代码,里面大部分是模板。如果代码...
  • 网格基础概念(2)

    千次阅读 2006-03-15 00:02:00
    网格跟IBM提出的自主计算有什么关系“自主计算”的设想是将日益复杂的IT系统管理后台化、自动化和智能化,通过强大的中间件将异构网络改造成真正意义上的和谐自主的数字神经系统。网格本身就是一种自主计算28.什么是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 80,455
精华内容 32,182
关键字:

外格怎么计算