精华内容
下载资源
问答
  • 2022-05-11 21:25:19

    点击下方卡片,关注“ OpenCV与AI深度学习

    视觉/图像重磅干货,第一时间送达!

    导读

    本文将介绍使用OpenCV实现多角度模板匹配的详细步骤 + 代码。(来源公众号:OpenCV与AI深度学习)

    背景介绍

        熟悉OpenCV的朋友肯定都知道OpenCV自带的模板匹配matchTemplate方法是不支持旋转的,也就是说当目标和模板有角度差异时匹配常常会失败,可能目标只是轻微的旋转,匹配分数就会下降很多,导致匹配精度下降甚至匹配出错。另一个方法是matchShape(形状匹配),匹配时需要轮廓分明才容易匹配成功,但无法的到匹配角度,也不方便使用。本文介绍基于matchTemplate + 旋转 + 金字塔下采样实现多角度的模板匹配,返回匹配结果(斜矩形、角度、方向)。

    实现效果

    OpenCV实现多角度模板匹配应用

    如上面视频所示,本方法可以对不同角度的元件做匹配并标注元件方向。

    实现思路

    【1】如何适应目标的角度变化?我们可以将模板旋转,从0~360°依次匹配找到最佳的匹配位置;

    更多相关内容
  • 多角度人脸识别简单介绍

    千次阅读 2018-08-18 10:44:13
    多角度人脸识别 在人脸识别过程中,摄像头的角度是相对固定的,但是人脸不是固定的。实际上,当人脸角度采集的角度比较一致(角度较小的偏转)时,才有较精确的结果。 关键点: 1、2D图像导致人脸比对困难。 2...

    https://blog.csdn.net/muhen1234/article/details/81776822

     

    多角度人脸识别

    在人脸识别过程中,摄像头的角度是相对固定的,但是人脸不是固定的。实际上,当人脸角度和采集的角度比较一致(角度较小的偏转)时,才有较精确的结果。

    关键点:

    1、2D图像导致人脸比对困难。

    2、如何使人脸角度偏转。

    思路分析:

    1. 直接在数据库比对。

    这一思路的实现要求数据库中有足够多的数据,但是并不现实,因为我们不可能对所有人进行不同角度的人脸采集,同时也不能接受该数据量下的时间成本。

    1. 对2D图像直接进行旋转、反转等操作。

    这一操作要求对2D图像进行直接或间接的操作,对于简单的人脸图像,这种操作方式具备相当的性价比。对于复杂且难以处理的图像就不那么友好了。

    1. 转化为3D图像。

    对于计算机而言,2D图像下,不同的人在同样的角度下的识别率远大于同样的人不同的角度的。因为角度的改变对于计算机而言是灰度的变化。所以将2D图像转化为3D图像就可以很轻松的避免这些问题。不过由于2D转为3D会产生大量的数据,对于服务器和数据传输的要求非常高。

    解决方法:

    1. PCA方法:PCA方法通过消除数据的相关性,找到一个空间,使得各个类别的数据在该空间上能够很好地分离

    缺点:无法在角度偏大时进行识别。

    1. ASM和AAM:这两种方法都是基于训练集建立的统计模型方法,通过对某一类特定图像进行建模,来进行特征提取。

    缺点:在遮挡或者姿态角度偏大的情况下不尽人意。

    1. sift特征提取:图像的局部特征,对旋转、尺度缩放、亮度变化保持不变,对视角变化、仿射变换、噪声也保持一定程度的稳定性。

    缺点:实时性不高,有时特征点少,边缘光滑的目标无法提取。

    1. OpenCV方法:分为正脸和侧脸,只是识别图形上朝一边的脸,如果想要识别朝另一边的脸就需要对图片进行水平翻转,再进行检测。

    2. 深度学习:仿照人脑解析数据。深度学习的好处是用非监督式或半监督式的特征学习和分层特征提取高效算法来替代手工获取特征。

    3. 2D和3D结合解决多角度问题。

    解决方案:

    现在多是采用深度学习人脸识别技术和3D人脸识别技术。

    1. 深度学习的多角度人脸识别算法:

    基本流程:

    1. 构建深度学习训练数据集

    2. 训练一个深度人脸分类器

    3. 应用分类器进行人脸检测

    将侧面图像作为输入,相应的正面图像作为输出,监督模型学习出从不同姿态的侧面图像到正面图像的映射,增加了识别中的有效面部信息。

    2、一种利用3D人脸可变模型解决2D图像中姿态角度偏大问题的方法:

    给神经网络输入通用正面人脸模板模型和2D图像,神经网络识别获取图像中人脸的姿态角度参数矩阵,利用这些参数就可以使模型“做出”和图像中人脸同样的脸部朝向。反过来,对改变姿态之后的3D模型,我们给它“拍个照”,变成2D图像,那么3D模型上的关键点通过“拍照”,就映射到2D图像上来了,得到一个初步的粗定位;此时,再根据关键点坐标,把原始图像切片,输入到另外的网络来调整3D模型的形状参数,使得模型更加精确的拟合2D图像,这样多次迭代之后,关键点便被精确定位出来。该方法开创性地利用3D人脸可变模型来学习2D图像,并且通过级联CNN神经网络回归来提高精确度,使得即使大姿态下,被遮挡的关键点也能被很好的定位出来。

    图解:

    3D模板+2D图像—>获取参数矩阵—>3D人脸朝向—>“拍照”(3D)—>粗定位(2D图像)—>切片原始图像,调整3D模型的形状参数—>反复迭代—>精确定位关键点

    即:

    (1)对图像进行轮廓定位态校正;

    (2)全局粗定位;

    (3)局部精细定位。

    3、一种基于3D模型的人脸旋转方法:基于姿态补偿的算法。

    新建一个特定人脸3D网格模型,然后进行旋转角度的初步估计,之后将待识别的照片和数据库中所有的人脸模型在初步估计的旋转角度处所投影的照片进行匹配,并分别计算他们的相关系数,然后选择数据库中的人脸模型。假设有N个人脸模型可以匹配,依次进行更详细、更精确的比较。

    4、3D技术与深度学习相结合。

    利用深度学习技术对单张人脸图片进行3D重构,通过重构的模型进行旋转,可以模拟出多角度人脸图片,采用这一技术可以有效增强人脸识别效果。

    其他方案:

    除了上述方法外,还有一些其他方法,基本都是通过算法和模型进行多角度人脸识别。

    如基于回归函数的多角度人脸识别算法。

    DDFD(Deep Dense Face Detector)

    基于迭代特征选择的快速多角度人脸识别

    表示学习和图像生成。表示学习是指在某一个场景下获取的多张不同姿态的图像,将这些图像作为输入,通过提出的DR-GAN网络模型,产生一个固定长度的特征向量,该向量表示的是这个人的特征,与姿态光照无关,同时该网络还可以根据输入的Noise/Pose编码,生成不同姿态的人脸。

    总结:

    多角度人脸识别是多姿态人脸识别的分支,目前已经有许多解决方案,在一些企业已经有了相应的产品。

    总的来说,解决角度问题有三种思路:第一种思路是学习并记忆多种角度特征,这对于多角度人脸数据可以容易获取的情况比较实用;第二种思路是基于单张视图生成多角度视图,可以在只能获取用户单张照片的情况下合成该用户的多个学习样本,可以解决训练样本较少的情况下的多角度人脸识别问题,从而改善识别性能;第三种思路是基于角度不变特征的方法,即寻求那些不随姿态的变化而变化的特征。

    参考(部分):

    https://blog.csdn.net/app_12062011/article/details/78636122——深度学习

    https://blog.csdn.net/jscese/article/details/54409627——OpenCV

    https://www.cnblogs.com/wangguchangqing/p/4853263.html——sift特征提取

    https://www.leiphone.com/news/201612/QiLCizc0tl6DaKqC.html?viewType=weixin——3D技术

    https://blog.csdn.net/xiaomage_gf/article/details/50510997——PCA技术

    展开全文
  • 几种分析的角度

    千次阅读 2021-01-14 11:22:24
    分析的角度有许多,这里我们选“条件分析”、“因果分析”、“演变分析”多角度分析”逐一加以介绍。(1)条件分析:就是从事物形成的条件、环境、背景等具体情况入手,进行分析。“世界上任何事物的存在都有一定...

    几种分析的角度_分析,乃议论之本:给材料议论文写作导引

    2.几种分析的角度

    所谓分析的角度,就是分析问题的出发点。

    分析的角度有许多,这里我们选“条件分析”、“因果分析”、“演变分析”和“多角度分析”逐一加以介绍。

    (1)条件分析:就是从事物形成的条件、环境、背景等具体情况入手,进行分析。

    “世界上任何事物的存在都有一定的条件,任何事物都和它周围的某些事物有一定的联系,都不是孤立的。”那么,我们练习条件分析,就可以从事物的发生、发展、结果,去研究是哪些条件在起着影响、促进与制约的作用。

    以《驴子之死》为例,试作条件分析。

    驴子之死

    驴子驮着盐去渡一条河,它滑了一下,跌倒在水里,它站起来时轻了许多。这件事使它很高兴。后来有一回,它驮了棉花过这条河,当它走到河边时,以为跌倒在河水里,还可以比以前更轻地站起来,便故意一滑,跌倒在河里,可它不能再站起来,便淹死在那河里了。

    条件分析:

    驴子两次过河,两次跌倒在水里,为什么第一次能轻松地站起来,而第二次却淹死在河里呢?这就要我们从形成这两种截然不同的结果的条件、环境、背景等具体情况入手,进行分析:同一头驴子,两次过的是同一条河,所不同的是它两次驮的物质不同,一次是盐,另一次是棉花。我们知道,盐是可溶物质,而棉花却是非溶解物,不但不溶于水,还会吸水呢。第一次驮着盐,跌倒在河里,大量的河水足以溶解驴背上所驮的盐,盐溶于河水的同时就流失了,当然驴背上的重量会大大地减轻,驴自然会轻松地站起来;而第二次驴子驮的则是棉花,再跌倒在河里,即使河里水再大,也溶不了棉花呀,相反,倒是足够供棉花吸水到饱和的程度。这样一来,驴背上的棉花,由于吸收了大量的河水,怎么能不大大加重驴背上的重量呢?自然驴子会被压得一蹶不起,只落个葬身河底的可悲下场。显然,这驴子是弄巧成拙,葬送了自己的生命。而造成这悲剧的症结就在于无知的驴子只知其一,即跌倒在河水里会轻松地站起来,却不知其二,即跌倒在河水里之所以能站起来的缘由。可见,驴子是把自己仅知道的“其一”当成了宝贵的“经验”。于是就盲目套搬起“经验”来。滥用“经验”,可就成了“经验主义”了。经验主义者,没有不吃大亏的。如果驴子懂得了“经验主义的危害甚大”和“具体问题得具体分析”的话,那么,它若有第二次生命,再有机会驮着海绵和糖过河的话,就定会牢记惨痛的教训,定会恰到好处地选用自己曾获得的宝贵经验与教训,而绝不会重蹈覆辙,从而确保自己立于不败之地。可见,驴子是地道的“经验主义”的牺牲品。故事的寓意:告诫人们“经验主义危害甚大,具体问题得具体分析”这一真谛。这一番分析实属条件分析。

    (2)因果分析:就是从现象发生的原因入手,或事物之间的因果关系入手,进行分析。

    世界上万事万物之间存在着千丝万缕的各种联系,其中十分重要的一种,便是因果联系。辩证唯物主义指出:“因果联系是客观世界普遍联系和相互制约的表现形式之一。”自然界和社会任何一个或一些现象,都会引起另一个或另一些现象的产生;反过来,任何现象的产生也都是由其他的现象所引起的。其中,引起一定现象的现象是原因,由于原因的作用而产生的现象是结果。因果联系的特点之一,是原因在先,结果在后。由于客观事物的联系是极其复杂的,因此事物的因果联系也是复杂多样的。从原因来讲,有主要原因和次要原因,直接原因和间接原因等。从结果来讲,又有主要结果和次要结果,直接结果和间接结果等。我们分析事物,当然是从主要原因(或直接原因)和主要结果(或直接结果)入手,也就是要抓住真正的因果关系。这样,才有利于揭示事物的本质。

    以《新婚拒绝多置家具》为例,试作因果分析。

    新婚拒绝多置家具

    法国科学家居里夫人,新婚时竟拒绝父亲为她多置家具。她的婚室里只有一张床,两把椅子。这在一般人看来属于“傻冒儿”,财产还怕多吗?终身大事,能这样寒酸吗?然而她有她的理论:家具多了,得擦洗、掸刷,而她“没有这个工夫”。原来,她把“工夫”全用在实验室里。她发现了一种新元素“镭”,她一连四十五个月不分昼夜,从两千多吨矿石、水和药品中提炼出一克纯“镭”。从此,“镭的母亲”的荣耀称号传遍了全世界。

    因果分析:

    法国科学家居里夫人获得了“镭的母亲”的荣耀称号,并被传遍了全世界。也许,你会觉得她很幸运。是的,她的确很幸运,因为她是个成功者。但请你一定要在觉得她很幸运的同时,深刻地意识到:任何发明创造的产生都须要付出艰辛的劳动,都须要付出很大的“工夫”,“功到自然成”么。所以,幸运是和付出成正比的。如果我们只看到成功的荣耀,却忘掉了成功者为此而付出的代价,显然不能正确地评价科学史上的发明创造。居里夫人之所以成为幸运的成功者,就是因为她为此付出了四十五个月的不分昼夜的艰辛劳动,不,准确一点说,是她慷慨地付出了不计其数的“工夫”。而她的“工夫”又是从哪里来的呢?正是来自“她竟连出嫁时父亲为自己盛情多置的家具都拒绝了”这样的令人费解的举动上。其实,就是她把别人擦洗、掸刷家具的工夫都用在科学实验上了。可见,她在处理家务之类的生活琐事上所花的工夫是多么的吝啬呀!但必须明确没有为生活所花工夫的吝啬,就不会有为科学而付出毕生的工夫的慷慨,也就不会有事业上的成功,因为“成功需要付出”。显然,我们是从这成功与付出两者之间的关系入手,进行因果分析的。(www.guayunfan.com)

    (3)演变分析:就是从事物的发展、变化入手,进行分析。

    演变分析有两个特点:第一,以事物的发展、变化状况作为分析的对象;第二,通过对事物的发展、变化状况的研究去认识事物的特点、本质和意义。世界上的万事万物,就像川流不息的江河,永远处于不停的运动之中,“一切皆变,无物常住”。因此,“要用发展的眼光看问题”。即学会用发展的观点认识事物。

    以《球王贝利》为例,试作演变分析。

    球王贝利

    有这样一段记载:当球王贝利踢进1 000个球时,记者去访问他:“您对所踢进的1 000个球中的哪个最满意?”贝利回答:“我对1 001个球最满意。”

    演变分析:

    看了这段记载,首先,感到球王就是球王!贝利之所以能成为球王,那是因为他在过去的足球赛中连连获胜,即所谓“连冠”,而之所以能连冠,是因为他过去一直是不断奋发,不断进取,从不满足;从他回答记者的话:“我对1 001个球最满意”来看,无疑,他现在仍然一如既往地不满足现状,在他的潜意识里,一定是认为踢进的1 000个球只代表过去的成绩,而第1 001个球则代表未来的成绩。可见,“任何成果都不是最后的”是他的座右铭。因为,他懂得在竞争激烈的今天,球坛的比赛亦如逆水行舟,“不进则退”。要赢对手,要想永远立于不败之地,只有永远是以未来的最佳成绩的获得为奋斗目标。显然,贝利是用发展的观点看球坛的激烈竞争的。而我们对贝利的观点的分析,理应采用演变分析。

    总之,条件分析、因果分析及演变分析是互有联系而又互有区别的。它们都是以事物的发展、变化为分析对象。但是分析角度全然不同:条件分析着重研究形成事物发展、变化的条件;因果分析着重研究形成事物发展、变化的原因及这个发展、变化会导致怎样的结果;演变分析则着重研究事物发展、变化的实际状况和支配这种发展、变化的动力与规律是怎样的。

    (4)多角度分析:我们研究某一个问题,从一个角度做过分析之后,再从另一个角度做一下分析,或者将两种角度结合起来,进行分析,这样从两个以上角度来分析问题的做法,就叫做多角度分析。

    因为任何事物都有它形成的过程,也都有它形成的条件与原因,任何事物的发展演变都是在一定的条件下发生的,也都有它一定的原因,因此,要想深入地认识事物,就须要学会从多方面去了解事物,研究事物,这就是要掌握多角度分析的本领。

    以《教书先生智斗吝啬富翁》为例,试作多角度分析。

    教书先生智斗吝啬富翁

    相传有一位吝啬富翁,聘请了一位教书先生。他对这位先生说:“膳食供给非常微薄。”在这种情况下,教书先生借口说空口无凭,便和富翁立了一个合约:“无鸡鸭亦可无鱼肉亦可青菜一碟足矣。”富翁在上面欣然签了字。哪知第一顿饭,教书先生就大喊大叫起来:“我们不是约定说有荤菜也有素菜嘛,怎么今天全是素菜呢?”只弄得富翁哭笑不得。

    多角度分析:

    我们看了这个故事后,首先发现的就是教书先生与吝啬富翁所立的合约没有标点,抓住这个线索进一步琢磨,就发现这合约有两种不同的读法:其一是“无鸡鸭亦可,无鱼肉亦可,青菜一碟,足矣。”其二则是“无鸡,鸭亦可;无鱼,肉亦可;青菜一碟,足矣。”显然教书先生是准备以后一种读法,来为自己争得应得的待遇的,而吝啬富翁却随心所欲地理解为是前一种读法。因为,这正满足了他那吝啬的心理。这一番分析,明显的是以事物形成的条件、环境、背景等具体情况入手,进行条件分析的。如果分析到此结束,就只能将寓意理解为:相同的字样,标点不同,表达的意思也就大不相同了。而这样的寓意只能告诫人们:“标点很重要,要学会准确地使用标点。”如果以这个寓意来立论,未免太肤浅了吧!看来,要想提炼出一个有深层含义的论点,对于这则材料的分析,只从条件分析的角度去分析,是远远不够的。我们不妨再从另一角度去深入分析一番吧:面对这有歧义的两种读法,教书先生之所以能如愿以偿的选择有利于自己的一种,是因为他正是这有歧义的读法的标点的设计者,真可谓是位称职的“设计师”了!别忘了,他之所以设计得如此专业,是因为他是个教书先生,他具备这方面的知识。可吝啬富翁就不然了,他拥有的却只是所谓的“万能的钱”和吝啬的本性,而对于知识,他几乎是个“绝缘体”!若不是吝啬心理作祟的话,恐怕连“其一”也不知道,更不用说那“其二”了。否则,他怎么会在合约上欣然签字呢?而后又怎么会被弄得哭笑不得呢?所以,与其说是教书先生战胜了吝啬富翁,倒不如说是知识战胜了愚昧与无知。显而易见:“知识就是力量。”分析到此,我们终于满意了。因为我们挖掘出的寓意是极深刻的。而这样有深度的寓意的取得,显然是由于我们从条件分析的角度入手分析后,又从另一个角度,即因果分析的角度去推进分析的结果。这就是多角度分析的功劳了。不难看出:“多角度分析”对议论文的“层递型”尤为适用。

    看来,只有掌握好分析的角度,才有助于打开分析的思路,从而入手分析并推进分析,使分析逐步深入。这样,分析才中肯,才能切中要害,才有利于挖掘出有深度的寓意来。

    但是,不论是采用哪一种角度的分析,也不论是展开分析,还是推进分析,都得靠“提出问题,给予解答”的分析的基本方法来进行。

    展开全文
  • 1/模板匹配方法 /// <... /// 多角度模板匹配方法 /// </summary> /// <param name="srcImage">待匹配图像</param> /// <param name="modelImage">模板图像&l...

    1/模板匹配方法

            /// <summary>
            /// 多角度模板匹配方法
            /// </summary>
            /// <param name="srcImage">待匹配图像</param>
            /// <param name="modelImage">模板图像</param>
            /// <param name="angleStart">起始角度</param>
            /// <param name="angleRange">角度范围</param>
            /// <param name="angleStep">角度步长</param>
            /// <param name="numLevels">金字塔层级</param>
            /// <param name="thresScore">得分阈值</param>
            /// <returns></returns>
            private ResultPoint CircleMatchNcc(Mat srcImage, Mat modelImage, double angleStart, double angleRange, double angleStep, int numLevels, double thresScore,int nccMethod)
            {
                double step = angleRange / ((angleRange / angleStep) / 100);
                double start = angleStart;
                double range = angleRange;
    
                //定义图片匹配所需要的参数
                int resultCols = srcImage.Cols - modelImage.Cols + 1;
                int resultRows = srcImage.Rows - modelImage.Cols + 1;
                Mat result = new Mat(resultCols, resultRows, MatType.CV_8U);
                Mat src = new Mat();
                Mat model = new Mat();
                srcImage.CopyTo(src);
                modelImage.CopyTo(model);
    
                //对模板图像和待检测图像分别进行图像金字塔下采样
                for (int i = 0; i < numLevels; i++)
                {
                    Cv2.PyrDown(src, src, new Size(src.Cols / 2, src.Rows / 2));
                    Cv2.PyrDown(model, model, new Size(model.Cols / 2, model.Rows / 2));
                }
    
                TemplateMatchModes matchMode = TemplateMatchModes.CCoeffNormed;
                switch (nccMethod)
                {
                    case 0:
                        matchMode = TemplateMatchModes.SqDiff;
                        break;
                    case 1:
                        matchMode = TemplateMatchModes.SqDiffNormed;
                        break;
                    case 2:
                        matchMode = TemplateMatchModes.CCorr;
                        break;
                    case 3:
                        matchMode = TemplateMatchModes.CCorrNormed;
                        break;
                    case 4:
                        matchMode = TemplateMatchModes.CCoeff;
                        break;
                    case 5:
                        matchMode = TemplateMatchModes.CCoeffNormed;
                        break;
                }
    
                //在没有旋转的情况下进行第一次匹配
                Cv2.MatchTemplate(src, model, result, matchMode);
                Cv2.MinMaxLoc(result, out double minVal, out double maxVal, out Point minLoc, out Point maxLoc, new Mat());
    
                Point location = maxLoc;
                double temp = maxVal;
                double angle = 0;
    
                Mat newImg;    
    
                //以最佳匹配点左右十倍角度步长进行循环匹配,直到角度步长小于参数角度步长
                if (nccMethod == 0 || nccMethod == 1)
                {
                    do
                    {
                        for (int i = 0; i <= (int)range / step; i++)
                        {
                            newImg = ImageRotate(model, start + step * i);
                            Cv2.MatchTemplate(src, newImg, result, matchMode);
                            Cv2.MinMaxLoc(result, out double minval, out double maxval, out Point minloc, out Point maxloc, new Mat());
                            if (maxval < temp)
                            {
                                location = maxloc;
                                temp = maxval;
                                angle = start + step * i;
                            }
                        }
                        range = step * 2;
                        start = angle - step;
                        step = step / 10;
                    } while (step > angleStep);
                    return new ResultPoint(location.X * Math.Pow(2, numLevels) + modelImage.Width / 2, location.Y * Math.Pow(2, numLevels) + modelImage.Height / 2, -angle, temp);
                }
                else
                {
                    do
                    {
                        for (int i = 0; i <= (int)range / step; i++)
                        {
                            newImg = ImageRotate(model, start + step * i);
                            Cv2.MatchTemplate(src, newImg, result, matchMode);
                            Cv2.MinMaxLoc(result, out double minval, out double maxval, out Point minloc, out Point maxloc, new Mat());
                            if (maxval > temp)
                            {
                                location = maxloc;
                                temp = maxval;
                                angle = start + step * i;
                            }
                        }
                        range = step * 2;
                        start = angle - step;
                        step = step / 10;
                    } while (step > angleStep);
                    if (temp > thresScore)
                {
                    return new ResultPoint(location.X * Math.Pow(2, numLevels), location.Y * Math.Pow(2, numLevels), -angle, temp);
                }
                }
                return new ResultPoint();
            }

    2/其他准备

                public ResultPoint(double x, double y, double t, double score)
                {
                    X = (int)x;
                    Y = (int)y;
                    T = t;
                    Score = score;
                }
    
                /// <summary>
                /// 图像旋转
                /// </summary>
                /// <param name="image">输入图像</param>
                /// <param name="angle">旋转的角度</param>
                /// <returns>旋转后图像</returns>
                static Mat ImageRotate(Mat image, double angle)
                {
                    Mat newImg = new Mat();
                    Point2f pt = new Point2f((float)image.Cols / 2, (float)image.Rows / 2);
                    Mat r = Cv2.GetRotationMatrix2D(pt, angle, 1.0);
                    Cv2.WarpAffine(image, newImg, r, image.Size());
    
                    return newImg;
                }
    
                /// <summary>
                /// 金字塔下采样
                /// </summary>
                /// <param name="image">输入图像</param>
                /// <returns>下采样完图像</returns>
                private Mat ImagePyrDown(Mat image)
                {
                    for (int i = 0; i < MyConfig.NumLevels; i++)
                    {
                        Cv2.PyrDown(image, image, new Size(image.Cols / 2, image.Rows / 2));
                    }
    
                    return image;
                }

     

    展开全文
  • 多角度理解CNN

    千次阅读 2020-02-14 10:40:58
    博客主题 图像 Filter Filter作用图像后结果 如何得到? ...等式角度 ...神经网络角度 ...矩阵乘法角度 ...上图的矩阵可以看成是传统神经网络中的权重矩阵,但是有两点不同: ...灰色显示的0是不可训练的...这一角度可以更好理...
  • C++ opencv ncc模板匹配,多角度带缩放,参考halcon
  • 利用 matlab 计算各种角度

    千次阅读 2021-04-30 02:01:19
    各种(空间)角度的计算方法以前自己的立体几何学的不好,各种计算方法全都忘记的差不多了,在这里整理与总结一下,便于以后查询分享吧1.两向量间夹角Calculate the 3D angle between two vectorsThe angle between ...
  • tan角度换算(tan值求角度计算器)

    万次阅读 2021-06-18 10:02:17
    已知tanα=0.5106,用计算器怎么算出来?...给你个公式吧tan(兀-α)=—tanα 所以tan75=(180-115)=-tan115≈-2.9018013542793 其他的做法以此类推,我们想把这个小数换算成一个角度。想知道这个角度...
  • MATLAB弧度与角度转换 -

    千次阅读 2020-12-20 18:54:19
    复数 z=x+y*i;其极坐标形式为 z=|z|*e^(i*θ); 其中 θ=arctan(y/x);|z|=sqrt(x^2+y^2);弧度计算: θ1=angle(z);...角度和弧度的换算:θ2=rad2deg(θ1); θ3=deg2rad(θ1);//rad2deg()函数用...
  • 从哪些角度赏析句子

    千次阅读 2021-01-14 11:22:26
    赏析句子的角度()从内容情感上看句子每句子本身都可提炼出一定的内容,也有的饱含作者的某种思想情感。在赏析句子的答案中,内容及思想情感是必不可少的部分。例句11.2008盐城市中考阅读题《父子》中的题目(第...
  • MPU6050 获取角度理论推导()

    万次阅读 多人点赞 2019-09-30 16:03:42
    那么陀螺仪具体的东西应该不用说,他其实就是一个获取原始数据然后通过DMP或者MCU的计算处理, 然后得到角度一个传感器。 MPU6050内部集成了一个陀螺仪一个加速传感器还有DMP计算单元。 陀螺仪是提供实时的...
  • 财务风险是企业的经营风险之,站在财务运营管理的角度,需要对企业的资金风险、投资风险、财务状况涉税风险等多个角度对财务风险进行分析,进而及时发现企业在运营过程中的财务风险,避免企业财务危机的发生。...
  • 怎么用科学计算器算角度

    千次阅读 2021-06-25 00:46:06
    ❶ 科学计算器怎么三角函数怎么转换角度得出函数值后,再按 shift .'" 试试❷ 科学计算器怎么输入“角度”【在Deg模式下(SHIFTMODE 3)】输入0.585❸ 科学计算器如何算角度1、首先,打开计算器。❹ 怎样用计算器 ...
  • 先打开adobe premiere导入三视频素材,举例演示,并把三视频素材分别放在三轨道上每PR都会有自带的特效插件:找到 视频效果 - 变换 - 裁剪 用鼠标把 裁剪特效拉到第层轨道上,然后点击 效果控件然后通过...
  • 舵机角度精确控制

    万次阅读 多人点赞 2021-07-12 14:46:45
    提示:PWM肯定是要会的,不说有精起码调节什么频率的,多少毫秒需要熟练掌握。如果不会可以参考我另篇文章: https://blog.csdn.net/weixin_45061010/article/details/116234867?spm=1001.2014.3001.5501 首先...
  • 基于openmv的色域识别(测距角度

    万次阅读 多人点赞 2019-09-20 14:35:53
    写在前面:由于最近做比赛着急,有很东西都是着急去实现并没有做整理,直到昨天才觉得感觉到内心的空虚,发现知识并没有成型,所以决定来写写总结。做些看似有意义的东西。 1、知识储备 A、openmv之简介 在官网...
  • 选择题 以下python代码输出什么? import math ...1.math.degrees(x)方法将弧度转换为角度,以浮点数据类型返回x的角度值,并至少保留位小数。 2.math.radians(x)方法将角度转换为弧度,以浮点数...
  • Camera的图像数据来源于摄像头硬件的图像传感器,这个图像传感器被固定到手机上后会有一个默认的方向,一般默认方向是当手机左侧横放时(手机横放并且手机顶部在左侧)。由于默认图片传感器为横向,大部分手机拍照则...
  • 角度编码器的基本研究(

    千次阅读 2019-05-13 13:22:29
    随着劳动力成本的上升科学技术的进步,工业生产过程中对智能化自动设备的需求越来越。主要原因有两是代替人工劳动力以降低生产成本;二是在一些环境恶劣的工作岗位取代人工劳动力,使人工劳动力能够从事...
  • 可以从以下角度分析:()从语言表达上看句子1.从修辞的角度赏析。常见的修辞有比喻、比拟、夸张、排比、对偶、反复、设问、反问,它们在不同的语境中所起到的作用各不相同。2.从特殊句式入手赏析。(1)从句式特点...
  • 从测试流程角度,对产品质量的一些总结思考、熟悉的场景二、测试流程拆解分析1、需求评审2、技术设计评审3、测试方案设计4、线下测试(含灰度)5、线上测试6、测试复盘7、线上监控三、总结 、熟悉的场景 生产...
  • 从另一个角度理解分布式系统与CAP定理 参考:性能之殇(七)-- 分布式计算、超级计算机与神经网络共同的瓶颈 分布式计算的本质 分布式系统的产生,来源于源于人们日益增长的性能需求与落后的x86架构之间的矛盾。 ...
  • 通信原理角度调制

    千次阅读 2018-12-09 08:54:17
    角度调制的两种方法 一般表达式为 FM与PM的表达式 PM: 消息直接放在相位上 FM: 消息直接放在角频率上 FM与PM之间的联系 从图中可以看出来,PMFM是存在某种联系的,他们是相对的、关联的。 这是由于...
  • OpenCV实战——角度测量

    千次阅读 2022-04-18 10:55:47
    对于这项目而言,知道这么已经够用了。 2. 获取鼠标点击得到的点坐标 import cv2 import math # 读入带有角度的图片 path = 'angle.png' img = cv2.imread(path) # 鼠标点击位置坐标列表 pointsList = [] # ...
  • 已知三角函数值,如何来求角度

    千次阅读 2021-06-17 04:06:45
    你已经在§6.1中学习了y=f(x) 存在反函数的条件,是x, y之间必须一一对应,反映在图象上,那就是任一平行于x轴的直线与函数图象的交点不能多于一个.正弦函数在其定义域(-¥, +¥)中显然不满足这些条件.如sin = ,...
  • 角度平均值计算

    千次阅读 2021-05-10 15:38:36
    业务需要计算多个角度的平均值 1、两个角度计算平均值 public static void main(String[] args) { double avg = avg(15, 340, 360); log.info("15°340°的平均值是{}", avg); } static double avg...
  • 最近很北鼻们在找寻关于弧度换算角度[角度换算弧度计算器]的解答,今天怀编为大家收集5条解答来给大家详细解答! 有78%学生认为弧度换算角度[角度换算弧度计算器]_弧度数计算公式值得读!弧度换算角度[角度换算...
  • 如何用windows计算器计算角度的正弦值?以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!如何用windows计算器计算角度的正弦值?Windows 的“计算器”...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,273,315
精华内容 509,326
关键字:

多角度和一个角度