??xml version="1.0" encoding="utf-8" standalone="yes"?>սÿձ:C++博客 - սƵ2019|սع//www.pppqb.icu/zmj/zh-cnMon, 16 Sep 2019 00:11:20 GMTMon, 16 Sep 2019 00:11:20 GMT60[重点中学] 东北育才学校各部门联pL?/title><link>//www.pppqb.icu/zmj/archive/2019/02/19/216244.html</link><dc:creator>zmj</dc:creator><author>zmj</author><pubDate>Tue, 19 Feb 2019 01:37:00 GMT</pubDate><guid>//www.pppqb.icu/zmj/archive/2019/02/19/216244.html</guid><wfw:comment>//www.pppqb.icu/zmj/comments/216244.html</wfw:comment><comments>//www.pppqb.icu/zmj/archive/2019/02/19/216244.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>//www.pppqb.icu/zmj/comments/commentRss/216244.html</wfw:commentRss><trackback:ping>//www.pppqb.icu/zmj/services/trackbacks/216244.html</trackback:ping><description><![CDATA[<strong style="overflow-wrap: break-word; color: #444444; font-family: Tahoma, "Microsoft Yahei", Simsun; background-color: #fdfdfd;">东北育才学校各部门联pL?/strong><strong style="overflow-wrap: break-word;">东北育才学校南校区</strong><br style="overflow-wrap: break-word; color: #444444; font-family: Tahoma, "Microsoft Yahei", Simsun; background-color: #fdfdfd;" />详细地址Q沈阛_南新区高功??br style="overflow-wrap: break-word;" />邮政~码Q?10179<br style="overflow-wrap: break-word;" />【东北育才学校校部?br style="overflow-wrap: break-word;" />校务办公室:23783945 | 业务指导部:62341363 | 人力资源部:62341198 | 后勤保障部:62340737 | 教育发展研究所Q?2341399<br style="overflow-wrap: break-word;" />【东北育才高中部?br style="overflow-wrap: break-word;" />教学处:62340178 | 学生发展指导处:62340277<br style="overflow-wrap: break-word;" />【东北育才科学高中部?br style="overflow-wrap: break-word;" />教学处:62341306 | 学生发展指导处:62340166<br style="overflow-wrap: break-word;" />【东北育才超常教育实验部?br style="overflow-wrap: break-word;" />教学处:62340419<br style="overflow-wrap: break-word;" />【东北育才国际部?br style="overflow-wrap: break-word;" />教学处:23783940<br style="overflow-wrap: break-word;" />【东北育才悲鸿美术学校?br style="overflow-wrap: break-word;" />教学、教育处Q?2341370 | 62341371<br style="overflow-wrap: break-word;" /><strong style="overflow-wrap: break-word; color: #444444; font-family: Tahoma, "Microsoft Yahei", Simsun; background-color: #fdfdfd;">东北育才学校q儿?/strong><br style="overflow-wrap: break-word; color: #444444; font-family: Tahoma, "Microsoft Yahei", Simsun; background-color: #fdfdfd;" />详细地址Q沈阛_南新区高功??br style="overflow-wrap: break-word;" />邮政~码Q?10179<br style="overflow-wrap: break-word;" />办公电话Q?2341510<br style="overflow-wrap: break-word;" /><strong style="overflow-wrap: break-word; color: #444444; font-family: Tahoma, "Microsoft Yahei", Simsun; background-color: #fdfdfd;">东北育才外国语学?/strong><br style="overflow-wrap: break-word; color: #444444; font-family: Tahoma, "Microsoft Yahei", Simsun; background-color: #fdfdfd;" />详细地址Q沈阛_南新区高荣??br style="overflow-wrap: break-word;" />邮政~码Q?10179<br style="overflow-wrap: break-word;" />教学处:23788397 | 学生发展指导处:23783798<br style="overflow-wrap: break-word;" /><strong style="overflow-wrap: break-word; color: #444444; font-family: Tahoma, "Microsoft Yahei", Simsun; background-color: #fdfdfd;">东北育才学校北校?/strong><br style="overflow-wrap: break-word; color: #444444; font-family: Tahoma, "Microsoft Yahei", Simsun; background-color: #fdfdfd;" />详细地址Q沈阛_和^区南一马\100?br style="overflow-wrap: break-word;" />邮政~码Q?10001<br style="overflow-wrap: break-word;" />【东北育才初中部?br style="overflow-wrap: break-word;" />教学处:62256856 | 学生发展指导处:62256894<br style="overflow-wrap: break-word;" /><strong style="overflow-wrap: break-word; color: #444444; font-family: Tahoma, "Microsoft Yahei", Simsun; background-color: #fdfdfd;">东北育才学校东关校区</strong><br style="overflow-wrap: break-word; color: #444444; font-family: Tahoma, "Microsoft Yahei", Simsun; background-color: #fdfdfd;" />详细地址Q沈阛_大东Z城南街育才?2?br style="overflow-wrap: break-word;" />邮政~码Q?10042<br style="overflow-wrap: break-word;" />【东北育才东x范小学?br style="overflow-wrap: break-word;" />办公电话Q?2437003<br style="overflow-wrap: break-word;" /><strong style="overflow-wrap: break-word; color: #444444; font-family: Tahoma, "Microsoft Yahei", Simsun; background-color: #fdfdfd;">东北育才学校双语校区</strong><br style="overflow-wrap: break-word; color: #444444; font-family: Tahoma, "Microsoft Yahei", Simsun; background-color: #fdfdfd;" />详细地址Q沈阛_沈北新区沈北?00?br style="overflow-wrap: break-word;" />邮政~码Q?10164<br style="overflow-wrap: break-word;" />【东北育才双语小学部?br style="overflow-wrap: break-word;" />教学处:62328083 | 学生发展指导处:62328173 62328187<br style="overflow-wrap: break-word;" />【东北育才双语初中部?br style="overflow-wrap: break-word;" />教学处:62328086 | 62328082<br style="overflow-wrap: break-word;" /><strong style="overflow-wrap: break-word; color: #444444; font-family: Tahoma, "Microsoft Yahei", Simsun; background-color: #fdfdfd;">东北育才学校实验校区</strong><br style="overflow-wrap: break-word; color: #444444; font-family: Tahoma, "Microsoft Yahei", Simsun; background-color: #fdfdfd;" />详细地址Q抚市高科技开发区李石U技城顺大街北段4?br style="overflow-wrap: break-word;" />邮政~码Q?13122<br style="overflow-wrap: break-word;" />【东北育才实验学校小学部?br style="overflow-wrap: break-word;" />教学处:58251488 | 学生发展指导处:58251466<br style="overflow-wrap: break-word;" />【东北育才实验学校中学部?br style="overflow-wrap: break-word;" />教学处:58251456 | 学生发展指导处:58250001<img src ="//www.pppqb.icu/zmj/aggbug/216244.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="//www.pppqb.icu/zmj/" target="_blank">zmj</a> 2019-02-19 09:37 <a href="//www.pppqb.icu/zmj/archive/2019/02/19/216244.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于深度相机的精度问?/title><link>//www.pppqb.icu/zmj/archive/2019/01/10/216181.html</link><dc:creator>zmj</dc:creator><author>zmj</author><pubDate>Thu, 10 Jan 2019 07:39:00 GMT</pubDate><guid>//www.pppqb.icu/zmj/archive/2019/01/10/216181.html</guid><wfw:comment>//www.pppqb.icu/zmj/comments/216181.html</wfw:comment><comments>//www.pppqb.icu/zmj/archive/2019/01/10/216181.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>//www.pppqb.icu/zmj/comments/commentRss/216181.html</wfw:commentRss><trackback:ping>//www.pppqb.icu/zmj/services/trackbacks/216181.html</trackback:ping><description><![CDATA[<div class="dpun">https://www.jianshu.com/p/1a916ed3c503</div><br /><div class="dpun"><div class="dpun"><p>常用的三U类型的深度相机<sup><a href="#fn1" id="fnref1">[1]</a></sup>Q大致分Z下三U:Zd投射l构光的深度相机Q如<strong class="dpun">Kinect 1.0</strong>, Intel RealSense, Enshape, Ensenso{)、被动双目相机(如STEROLABS 推出?<strong class="dpun">ZED 2K Stereo Camera</strong>, Point Grey 公司推出?BumbleBeeQ以及ToF<sup><a href="#fn2" id="fnref2">[2]</a></sup>相机Q如微Y?strong>Kinect 2.0</strong>, MESA ?SR4000 , Google Project Tango 中用的PMD Tech 的TOF相机QIntel ?SoftKinect DepthSense, BaslerZ松下的芯片开发的TOF相机以及国内一些初创公司基于TI的方案开发的TOF相机{等Q?/p> <blockquote> <p>目前市面上常有的 3D 相机Ҏ就是下?U,对应上面的:<br /> (1) l构?Structured-light)Q代表公司有奥比中光Q国产,比较推荐Q性h比可以,也有高分辨率的款Q,Ҏ(Prime Sense)Q微?Kinect-1Q英特尔RealSense, Mantis Vision {?br /> (2) 双目视觉(Stereo)Q代表公?Leap MotionQ?ZEDQ?大疆;<br /> (3) 光飞行时间法(TOF)Q代表公司微?Kinect-2QPMDQSoftKinectQ?联想Phab?/p> </blockquote> <div class="dpun"> <img src="//static.zybuluo.com/usiege/nw2lyad2ikqkuk4vdlx3jwr1/image_1cs5el5cb14m9bhr9ts11rvgve4i.png" data-original-src="//static.zybuluo.com/usiege/nw2lyad2ikqkuk4vdlx3jwr1/image_1cs5el5cb14m9bhr9ts11rvgve4i.png" alt="image_1cs5el5cb14m9bhr9ts11rvgve4i.png-82.7kB" style="cursor: zoom-in;" /><div class="dpun">image_1cs5el5cb14m9bhr9ts11rvgve4i.png-82.7kB</div> </div> <h2 class="dpun">1. Kinect</h2> <p>先给出结论,<strong class="dpun">KinectV2的精度在2mm~4mm左右</strong>Q距越q精度越高,远_ֺE微差点QkinectV1误差U?strong>2mm~30mm</strong>?/p> <p><a target="_blank" rel="nofollow">Kinectv2 for Mobile Robot Navigation: Evaluationand Modeling</a></p> <ul class="dpun"> <li class="dpun">Kinect v2在不同位|的_ֺ问题</li> </ul> <div class="dpun"> <img src="//static.zybuluo.com/usiege/vvzip2kg0mvhqzyiekssyy45/image_1cs6h8fbdokn1ljf1npuogg1g2b5p.png" data-original-src="//static.zybuluo.com/usiege/vvzip2kg0mvhqzyiekssyy45/image_1cs6h8fbdokn1ljf1npuogg1g2b5p.png" alt="image_1cs6h8fbdokn1ljf1npuogg1g2b5p.png-1587.5kB" style="cursor: zoom-in;" /><div class="dpun">image_1cs6h8fbdokn1ljf1npuogg1g2b5p.png-1587.5kB</div> </div> <p>如上图所C,右侧大三角是KinectV2在纵向(垂直于地面)的精度分布,下侧大三角是KinectV2在水q面Q^行于地面Q上的精度分布。在l色区域_ֺ最高,误差<strong class="dpun">于2mm</strong>Q在黄色区域误差?strong>2~4mm</strong>Q红色区域误?strong>大于4mm</strong>。所以在设计交互场景Ӟ在黄色区域以内会辑ֈ最好的效果Q?.5m内)。如果对_ֺ要求很高Q如控制机械Q最好在l色区域q行交互?/p> <h2 class="dpun">2 Kinect v2和Kinect v1</h2> <div class="dpun"> <img src="//static.zybuluo.com/usiege/dtqesw77jft8329nqssqrj5x/image_1cs5gdtqv1r19e2m1ufcgal15a75c.png" data-original-src="//static.zybuluo.com/usiege/dtqesw77jft8329nqssqrj5x/image_1cs5gdtqv1r19e2m1ufcgal15a75c.png" alt="性能表对? style="cursor: zoom-in;" /><div class="dpun">性能表对?/div> </div> <p>Kinect v2的rgb视场QFOV<sup><a href="#fn3" id="fnref3">[3]</a></sup>Q是84.1 x 53.8Q关于FOV的徏模和模型可以<a target="_blank" rel="nofollow">参?/a>?/p> <div class="dpun"> <img src="//static.zybuluo.com/usiege/k6xs97dxiheiib6r2m8bynbz/image_1cs6hgs884u61c4cs061tp61d9466.png" data-original-src="//static.zybuluo.com/usiege/k6xs97dxiheiib6r2m8bynbz/image_1cs6hgs884u61c4cs061tp61d9466.png" alt="image_1cs6hgs884u61c4cs061tp61d9466.png-274.2kB" style="cursor: zoom-in;" /><div class="dpun">image_1cs6hgs884u61c4cs061tp61d9466.png-274.2kB</div> </div> <p>如图所C,KinectV1随着距离增加Q误差指数性增加,在距达?mӞkinectV1误差<strong class="dpun">接近0.2m</strong>。而KinectV2的误差几乎不随距d加而变化。V2比V1q踪准确度好20%。V2可以在户外进行h体跟t,最q到4m。V2在近距离有比V1?倍的_ֺQ在6m有高数十倍的_ֺ?/p> <ul class="dpun"> <li class="dpun"><p>kinectv1和kinectv2比较</p></li> <li class="dpun"><p>|KinectV1|KinectV2<br /> ----|----|----<br /> 范?Range of Detecton)|0.8–6.0m|0.5 –4.5m<br /> 深度误差(depth Uncertainty)|2mm-30mm|<0.5% of range<br /> 角度(AngleQhorizontal-vertical)|57-43|70-60</p></li> </ul> <h2 class="dpun">3. LeapMotion</h2> <p>LeapMotion的精度^均下来是<strong class="dpun">0.7mm</strong>的精度,也是达不到所谓的0.01mm的?/p> <p><a target="_blank" rel="nofollow">Analysis of the Accuracy and Robustness of the Leap<br /> Motion Controller</a></p> <p>上面的论文对初步版本中的Leap Motion控制器进行研IӞ分别在静态与动态设|下的精度和准确性,考虑Ch手的可达到的q_Uؓ0.4mmQ实验用讑֤使用参考笔Q位|精度可?.2mmQ且参考笔对A器精度测量无可观察到的媄响。在Z静态设|的量下,获得了期望的3D位置?strong>于0.2mm</strong>的测量位|之间的与u无关的偏差。在动态情况下Q独立于q面Q可以获?strong>于2.5mm</strong>的精度(q_1.2毫米Q。重复?strong>q_于0.17毫米</strong>。在Z姿势的用L面方面,在实际条件下不可能实?.01mm的理论精度,而是高精度(d^均精度ؓ<strong class="dpun">0.7mm</strong>Q?/p> <h2 class="dpun">最后比较一下以上设备的优缺?/h2> <h3>1. Microsoft Kinect</h3> <div class="dpun"> <img src="//static.zybuluo.com/usiege/zqfzq1qjirtgmj2gxubcxni6/image_1cs835f4eiaa4gb1ln31cndcb2an.png" data-original-src="//static.zybuluo.com/usiege/zqfzq1qjirtgmj2gxubcxni6/image_1cs835f4eiaa4gb1ln31cndcb2an.png" alt="image_1cs835f4eiaa4gb1ln31cndcb2an.png-99.9kB" style="cursor: zoom-in;" /><div class="dpun">image_1cs835f4eiaa4gb1ln31cndcb2an.png-99.9kB</div> </div> <p>优点Q?/p> <ul class="dpun"> <li class="dpun">可以获取深度数据Q?20Q?40Q、rgb</li> <li class="dpun">数据Q?40Q?80Q、声韟뀁骨D点(20个)</li> <li class="dpun">拥有三套 SDKQ微?SDK、OpenNI、libfreenect</li> <li class="dpun">后两?SDK 是跨q_Q支持各U开发语a</li> <li class="dpun">h便宜</li> <li class="dpun">C֌成熟Q开发资源丰?/li> </ul> <p>~点Q?/p> <ul class="dpun"> <li class="dpun">传感器分辨率不够Q看不清手指</li> <li class="dpun">׃使用l构光技术,深度传感器的可视范围无法重叠</li> <li class="dpun">OpenNI ?libfreenect 虽然跨^収ͼ但是功能q不如微?SDK</li> <li class="dpun">讑֤寸大,需要一坨电源线</li> <li class="dpun">致命~点Q微软已宣布停止生 Kinect 一?/li> </ul> <h3>2. Microsoft Kinect One</h3> <div class="dpun"> <img src="//static.zybuluo.com/usiege/x15jth33tgjvm8ne69b8341w/image_1cs83c41h1bpip0qjqvc2s1aub4.png" data-original-src="//static.zybuluo.com/usiege/x15jth33tgjvm8ne69b8341w/image_1cs83c41h1bpip0qjqvc2s1aub4.png" alt="image_1cs83c41h1bpip0qjqvc2s1aub4.png-84.5kB" style="cursor: zoom-in;" /><div class="dpun">image_1cs83c41h1bpip0qjqvc2s1aub4.png-84.5kB</div> </div> <p>优点Q?/p> <ul class="dpun"> <li class="dpun">分L率更大、可以看到更qK的场?/li> <li class="dpun">可以到的h体关节点更多Q?5个)Q能看清手指</li> <li class="dpun">拥有两套 SDKQ微?SDK、libfreenect2</li> <li class="dpun">可以开?Windows Store 应用</li> </ul> <p>~点Q?/p> <ul class="dpun"> <li class="dpun">libfreenect2 基本不能骨|功能~太多,同时 OpenNI 也不支持它,因此局限于 Windows q_</li> <li class="dpun">讑֤寸比一代更大,需要一坨电源线Q比一代贵一?/li> <li class="dpun">致命~点Q只能运行在 64 ?Windows 8 pȝ上,必须使用 USB 3.0 端口</li> </ul> <h3>3. Intel / Creative / SoftKinetic</h3> <div class="dpun"> <img src="//static.zybuluo.com/usiege/mz6hk7qh58fxw74xu9038ye2/image_1cs83s6uv6941lg0gaonlg1ocp19.png" data-original-src="//static.zybuluo.com/usiege/mz6hk7qh58fxw74xu9038ye2/image_1cs83s6uv6941lg0gaonlg1ocp19.png" alt="image_1cs83s6uv6941lg0gaonlg1ocp19.png-259.3kB" style="cursor: zoom-in;" /><div class="dpun">image_1cs83s6uv6941lg0gaonlg1ocp19.png-259.3kB</div> </div> <p>优点Q?/p> <ul class="dpun"> <li class="dpun">yQ普?USB 摄像头的寸</li> <li class="dpun">不需要外界电源线</li> <li class="dpun">q距M用,可实现表情分析和手势识别</li> </ul> <p>~点Q?/p> <ul class="dpun"> <li class="dpun">不适合q距M互,也无法检完整的w体</li> <li class="dpun">只能在中高端?Intel CPU 上才能运?/li> </ul> <h3>4. Leap Motion</h3> <div class="dpun"> <img src="//static.zybuluo.com/usiege/hacbua5n3k64vafha0g1j1gx/image_1cs83t6bukpppr9f021dtt1cdo1m.png" data-original-src="//static.zybuluo.com/usiege/hacbua5n3k64vafha0g1j1gx/image_1cs83t6bukpppr9f021dtt1cdo1m.png" alt="image_1cs83t6bukpppr9f021dtt1cdo1m.png-170.4kB" style="cursor: zoom-in;" /><div class="dpun">image_1cs83t6bukpppr9f021dtt1cdo1m.png-170.4kB</div> </div> <p>优点Q?/p> <ul class="dpun"> <li class="dpun">yQ一?usb U就可以使用</li> <li class="dpun">跨^?/li> <li class="dpun">支持的开发语a比较多,甚至通过 WebSocket</li> <li class="dpun">实现了浏览器中的 JavaScript API</li> <li class="dpun">跟踪手指和手掌,_ֺ较高</li> </ul> <p>~点Q?/p> <ul class="dpun"> <li class="dpun">范围小Q手臂酸|见上图)</li> <li class="dpun">不能n体和脔R</li> <li class="dpun">作ؓ生力工P完全无法替代鼠标键盘</li> <li class="dpun">致命~点Q找不到合适的使用场景</li> </ul> <h3>5. PrimeSense / Apple / 华硕QASUSQ?/h3> <div class="dpun"> <img src="//static.zybuluo.com/usiege/oy42h0f0vsdbzjpjkybh5dma/image_1cs8479dm6sncqr1ulgb1e1l5r23.png" data-original-src="//static.zybuluo.com/usiege/oy42h0f0vsdbzjpjkybh5dma/image_1cs8479dm6sncqr1ulgb1e1l5r23.png" alt="image_1cs8479dm6sncqr1ulgb1e1l5r23.png-80.6kB" style="cursor: zoom-in;" /><div class="dpun">image_1cs8479dm6sncqr1ulgb1e1l5r23.png-80.6kB</div> </div> <p>?Kinect 一代的优缺点类|</p> <hr /> <hr /> <ol> <li id="fn1"> <p><a target="_blank" rel="nofollow">https://zhuanlan.zhihu.com/p/28274727</a> <a href="#fnref1">↩</a></p> </li> <li id="fn2"> <p><a target="_blank" rel="nofollow">https://baike.baidu.com/item/TOF/19952376?fr=aladdin</a> <a href="#fnref2">↩</a></p> </li> <li id="fn3"> <p><a target="_blank" rel="nofollow">//www.coloreye.cn/wiki/doc-view-716.html</a> <a href="#fnref3">↩</a></p></li></ol></div><br /><br />作者:消失的指?br />链接Qhttps://www.jianshu.com/p/1a916ed3c503<br />來源Q简?br />书著作权归作者所有,M形式的{载都误pM者获得授权ƈ注明出处?/div><img src ="//www.pppqb.icu/zmj/aggbug/216181.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="//www.pppqb.icu/zmj/" target="_blank">zmj</a> 2019-01-10 15:39 <a href="//www.pppqb.icu/zmj/archive/2019/01/10/216181.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Kinect开发教E一QOpenNI的安装与开发环境配|?/title><link>//www.pppqb.icu/zmj/archive/2018/12/26/216145.html</link><dc:creator>zmj</dc:creator><author>zmj</author><pubDate>Wed, 26 Dec 2018 09:43:00 GMT</pubDate><guid>//www.pppqb.icu/zmj/archive/2018/12/26/216145.html</guid><wfw:comment>//www.pppqb.icu/zmj/comments/216145.html</wfw:comment><comments>//www.pppqb.icu/zmj/archive/2018/12/26/216145.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>//www.pppqb.icu/zmj/comments/commentRss/216145.html</wfw:commentRss><trackback:ping>//www.pppqb.icu/zmj/services/trackbacks/216145.html</trackback:ping><description><![CDATA[<h1>սÿձ:<div class="dpun"><span style="font-size: 14pt; font-weight: normal;">https://blog.csdn.net/chenxin_130/article/details/6693390</span></div><span style="font-weight: normal;"><br /></span><div class="dpun"><span style="font-size: 14pt; font-weight: normal;">斤注:关于OpenNI2.X版本的安装与开发环境配|,请参考《Kinect开发教E六QOpenNI2介、安装与VS开发环境配|?/span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-size: 14pt; font-weight: normal;">-----------------------------------------------------------------------</span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-size: 14pt; font-weight: normal;">      Kinect作ؓC代的体感讑֤Q小斤就不多介绍咯,微Y日前也发布了相应的官方SDKQ用以开发Kinect在PC上的应用。但q前的情况而言Q微软的KinectSDK只能在Win 7q_上用,因此斤选择了OpenNI作ؓKinect开发的W一块踏脚石Q它是目前已被广泛用和认可的开源Kinect开发库?/span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-weight: normal;"> </span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-size: 14pt; font-weight: normal;">准备</span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-size: 14pt; font-weight: normal;">       首先大家需要下载三样东西:</span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-size: 14pt; font-weight: normal;">       W一QOpenNI Q小斤在q里下蝲Q//www.openni.org/Downloads/OpenNIModules.aspxQ选择OpenNI BinariesQ注意要下蝲Development EditionQ这h有Sample可以试查看。此外,源码也可以在GitHub上看刎ͼhttps://github.com/OpenNI/OpenNI</span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-size: 14pt; font-weight: normal;">       W二QSensorKinectQ它是Kinect的驱动了Q可以在https://github.com/avin2/SensorKinect的Bin中找到?/span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-size: 14pt; font-weight: normal;">       W三QNITEQ这是PrimeSense 提供的中间gQ可以分析Kinectd的资料,输出Z动作{等。目前在//www.openni.org/Downloads/OpenNIModules.aspxQ选择OpenNI Compliant Middleware Binariesp够下载了?/span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-weight: normal;"> </span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-size: 14pt; font-weight: normal;">安装</span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-size: 14pt; font-weight: normal;">?】下载完毕后Q先把Kinect攑֜一边,安装OpenNI?/span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-size: 14pt; font-weight: normal;">(斤安装OpenNI后,安装SensorKinectq程中,会弹?#8221;Please install OpenNI version….”之类的错误,重启后再一ơ点击SensorKinect安装p决了。有同学提示_安装OpenNI的Windows用户一定要用管理员w䆾跑安装程序才行,没有的话有一部分文g无法写入Q会D之后的错误?</span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-weight: normal;"> </span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-size: 14pt; font-weight: normal;">?】安装SensorKinect驱动Q装完,把Kinect插上Q此时系l就会自动开始搜索驱动了Q如果没有搜索到Q那么需要指定驱动目录了。假设SensorKinect默认安装在默认\径,指定驱动目录C:\ProgramFiles\Prime Sense\Sensor\Driver?/span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-size: 14pt; font-weight: normal;">      驱动安装成功的话Q在讑֤理器中Q会出现:</span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-weight: normal;"> </span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-size: 14pt; font-weight: normal;">?】安装NITEQ装完后Q由于NITE定义?20*240分L率与SensorKinect?40*480不同Q这Ҏ个关键步骤,假设安装在默认\径:</span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-size: 14pt; font-weight: normal;">      ?c:\Program Files\PrimeSense\Sensor\SampleXMLs\NITE\Data\" 里复制所有XML文g?"c:\ProgramFiles\Prime Sense\NITE\Data\" 覆盖</span></div><div class="dpun"><span style="font-size: 14pt; font-weight: normal;">  ?c:\ProgramFiles\Prime Sense\Sensor\SampleXMLs\OPENNI\Data" 里复制所有XML文g?"c:\Program Files\OpenNI\Data" 覆盖</span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-size: 14pt; font-weight: normal;">      此外QNITE是需要序列号的,但其官网免费提供了一个:0KOIk2JeIBYClPWVnMoRKn5cdY4=</span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-size: 14pt; font-weight: normal;">       我们只要?c:\Program Files\Prime Sense\NITE\Data\"目录下所有配|文Ӟ把Licenses部分替换卛_Q?/span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-size: 14pt; font-weight: normal;">  <Licenses> </span></div><div class="dpun"><span style="font-size: 14pt; font-weight: normal;">     <License vendor="PrimeSense"key="0KOIk2JeIBYClPWVnMoRKn5cdY4="/> </span></div><div class="dpun"><span style="font-size: 14pt; font-weight: normal;">  </Licenses></span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-weight: normal;"> </span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-size: 14pt; font-weight: normal;">试</span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-size: 14pt; font-weight: normal;">【OpenNI?/span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-size: 14pt; font-weight: normal;">       如果安装在默认\径下Q测试程序可以在C:\Program Files\OpenNI\Samples\Bin\Release下找刎ͼq里斤使用的是NiViewer.exe和NiSimpleViewer.exeQ都是显C深度图Q如果运行没问题可以咯。另外,NiUserTrackerq个E序也很有趣Q可以跟t你的h体,前提是它捕捉CZ后,你做Z个标定动作(举v双手Qƈl持一D|间?/span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-size: 14pt; font-weight: normal;">      SimpleViewer:</span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-size: 14pt; font-weight: normal;">       UserTracker:</span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-size: 14pt; font-weight: normal;">        如果安装一切正常,但这些例子无法显C结果,可以关闭防火墙试试,某些防火墙的讄会阻拦OpenNI的组件读取摄像头?/span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-size: 14pt; font-weight: normal;">【NITE?/span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-size: 14pt; font-weight: normal;">       同样的,如果安装在默认\径下Q测试程序可以在C:\Program Files\OpenNI\Samples\Bin\Release下找刎ͼ斤玩了下StickFigureQ这个程序能在一个空间中昄出骨架?/span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-size: 14pt; font-weight: normal;">VS开发环?/span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-size: 14pt; font-weight: normal;">       要用VSq行开发的话,需要配|include和lib路径?/span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-size: 14pt; font-weight: normal;">       q入VSQ点击菜单ToolsQ进入Options?/span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-size: 14pt; font-weight: normal;">       在Projects and Solutions中,选择VC++Directories?/span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-size: 14pt; font-weight: normal;">       假设OpenNI安装在默认\径下Q则include files加入C:\Program Files\OpenNI\IncludeQLibrary files加入C:\ProgramFiles\OpenNI\Lib?/span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-size: 14pt; font-weight: normal;">       q样VS的开发环境就配置好了。如果徏立了OpenNI的开发项目,则还需要在目属?#8212;—Linker——Input 中的Additional DenpendenciesQ加入openNI.lib?/span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-size: 14pt; font-weight: normal;">       Q以上配|在VS2010中有些出入,include和library可能被移到项目属性中配置Q?/span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-weight: normal;"> </span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-size: 14pt; font-weight: normal;">       与OpenNI的Sample使用OpenGL不同Q小斤之后的教程范例中,会用OpenCVq行囑փ的输入输出,以简化程序(如果你看了OpenNI Sample的代码,会发C码被OpenGL占了一大半Q。大家可以在//www.opencv.org.cn/上找到安装配|方法,斤׃赘述了。(当然大家也可以直接无视范例中的OpenCV输出部分Q把OpenNId的数据直接print出来。)</span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-size: 14pt; font-weight: normal;">----------------------------------</span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-size: 14pt; font-weight: normal;">作者:斤Q陈忻)</span></div><div class="dpun"><span style="font-weight: normal;"><br /></span></div><div class="dpun"><span style="font-size: 14pt; font-weight: normal;">本文属于原创文章Q如需转蝲引用h明原文作者和链接Q谢谢?/span></div><div class="dpun"><span style="font-size: 14pt; font-weight: normal;">--------------------- </span></div><div class="dpun"><span style="font-size: 14pt; font-weight: normal;">作者:斤?nbsp;</span></div><div class="dpun"><span style="font-size: 14pt; font-weight: normal;">来源QCSDN </span></div><div class="dpun"><span style="font-size: 14pt; font-weight: normal;">原文Qhttps://blog.csdn.net/chenxin_130/article/details/6693390 </span></div><div class="dpun"><span style="font-size: 14pt; font-weight: normal;">版权声明Q本文ؓ博主原创文章Q{载请附上博文链接Q?/span></div></h1><img src ="//www.pppqb.icu/zmj/aggbug/216145.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="//www.pppqb.icu/zmj/" target="_blank">zmj</a> 2018-12-26 17:43 <a href="//www.pppqb.icu/zmj/archive/2018/12/26/216145.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>OpenNI1.5 VS2013配置环境后,~译会出现这个错误: - սƵ2019|սع//www.pppqb.icu/zmj/archive/2018/12/26/216144.htmlzmjzmjWed, 26 Dec 2018 09:39:00 GMT//www.pppqb.icu/zmj/archive/2018/12/26/216144.html//www.pppqb.icu/zmj/comments/216144.html//www.pppqb.icu/zmj/archive/2018/12/26/216144.html#Feedback0//www.pppqb.icu/zmj/comments/commentRss/216144.html//www.pppqb.icu/zmj/services/trackbacks/216144.html
https://www.cnblogs.com/asmer-stone/p/5537111.html

#error : Xiron Platform Abstraction Layer - Win32 - Microsoft Visual Studio versions above 2010 (10.0) are not supported! 解决Ҏ
OpenNI1.5 VS2013配置环境后,~译会出现这个错误:
错误    4    error C1189: #error :  Xiron Platform Abstraction Layer - Win32 - Microsoft Visual Studio versions above 2010 (10.0) are not supported!    c:\program files\openni\include\XnPlatform.h    57    1    test
原因是OpenNI?XnPlatform.h里边有一D늉本检查代?
复制代码
#ifndef RC_INVOKED
        #if _MSC_VER < 1300 // Before MSVC7 (2003)
            #error Xiron Platform Abstraction Layer - Win32 - Microsoft Visual Studio versions below 2003 (7.0) are not supported!
        #endif
        #if _MSC_VER > 1600 // After MSVC8 (2010)
            #error Xiron Platform Abstraction Layer - Win32 - Microsoft Visual Studio versions above 2010 (10.0) are not supported!
        #endif
    #endif
复制代码
解决ҎQ?/div>
用管理员w䆾q行VSQ打开目Q找到报错位|(会定向到XnPlatform.hQ,?600改ؓ1900Q?保存卛_



zmj 2018-12-26 17:39 发表评论
]]>全变分(TVQ模型原理与C++实现 - սƵ2019|սع//www.pppqb.icu/zmj/archive/2018/11/29/216100.htmlzmjzmjThu, 29 Nov 2018 02:47:00 GMT//www.pppqb.icu/zmj/archive/2018/11/29/216100.html//www.pppqb.icu/zmj/comments/216100.html//www.pppqb.icu/zmj/archive/2018/11/29/216100.html#Feedback0//www.pppqb.icu/zmj/comments/commentRss/216100.html//www.pppqb.icu/zmj/services/trackbacks/216100.htmlhttps://blog.csdn.net/cyh706510441/article/details/45194223

本文介绍了TV模型的基本原理,q给ZC++代码实现?/div>
一、TV模型原理
二、C++实现
关于Matlab的程序实玎ͼ有一个经典的主页Q?//visl.technion.ac.il/~gilboa/PDE-filt/tv_denoising.html
有博L成了C++代码Q见l典的变分法囑փd的C++实现
另有博主Ҏ了更z的版本Q见【图像处理】全分发TV囑փd
但精版的有个问题Qimage[i][j] += dt*(tmp_num/tmp_den+ lam*(image0[i][j] - image[i][j])); 
直接在image中P代,q有问题Q最后得到的d囑փ跟MATLAB得到的去噪图像有l微差别Q对两幅囑փ做差值可发现差别?/div>
本文代码基本参照上面的版本,把代码修改ؓQ之前公式有误,已修?2015q??3日)Q?/div>
void CImageObj::Total_Variation(int iter, double dt, double epsilon, double lambda)
{
int i, j;
int nx = m_width, ny = m_height;
double ep2 = epsilon * epsilon;
 
double** I_t = NewDoubleMatrix(nx, ny);
double** I_tmp = NewDoubleMatrix(nx, ny);
for (i = 0; i < ny; i++)
for (j = 0; j < nx; j++)
I_t[i][j] = I_tmp[i][j] = (double)m_imgData[i][j];
 
for (int t = 0; t < iter; t++)
{
for (i = 0; i < ny; i++)
{
for (j = 0; j < nx; j++)
{
int iUp = i - 1, iDown = i + 1;
int jLeft = j - 1, jRight = j + 1;    // 边界处理
if (0 == i) iUp = i; if (ny - 1 == i) iDown = i;
if (0 == j) jLeft = j; if (nx - 1 == j) jRight = j;
 
double tmp_x = (I_t[i][jRight] - I_t[i][jLeft]) / 2.0;
double tmp_y = (I_t[iDown][j] - I_t[iUp][j]) / 2.0;
double tmp_xx = I_t[i][jRight] + I_t[i][jLeft] - 2 * I_t[i][j];
double tmp_yy = I_t[iDown][j] + I_t[iUp][j] - 2 * I_t[i][j];
double tmp_xy = (I_t[iDown][jRight] + I_t[iUp][jLeft] - I_t[iUp][jRight] - I_t[iDown][jLeft]) / 4.0;
double tmp_num = tmp_yy * (tmp_x * tmp_x + ep2) + tmp_xx * (tmp_y * tmp_y + ep2) - 2 * tmp_x * tmp_y * tmp_xy;
double tmp_den = pow(tmp_x * tmp_x + tmp_y * tmp_y + ep2, 1.5);
 
I_tmp[i][j] += dt*(tmp_num / tmp_den + lambda*(m_imgData[i][j] - I_t[i][j]));
}
}  // 一ơP?/div>
 
for (i = 0; i < ny; i++)
for (j = 0; j < nx; j++)
{
I_t[i][j] = I_tmp[i][j];
}
 
} // q代l束
 
// l图像赋?/div>
for (i = 0; i < ny; i++)
for (j = 0; j < nx; j++)
{
double tmp = I_t[i][j];
tmp = max(0, min(tmp, 255));
m_imgData[i][j] = (unsigned char)tmp;
}
 
DeleteDoubleMatrix(I_t, nx, ny);
DeleteDoubleMatrix(I_tmp, nx, ny);
}
--------------------- 
作者:cyh706510441 
来源QCSDN 
原文Qhttps://blog.csdn.net/cyh706510441/article/details/45194223 
版权声明Q本文ؓ博主原创文章Q{载请附上博文链接Q?/div>

zmj 2018-11-29 10:47 发表评论
]]>如何把PDF变ؓ6寸的寸 - սƵ2019|սع//www.pppqb.icu/zmj/archive/2018/11/23/216076.htmlzmjzmjFri, 23 Nov 2018 01:09:00 GMT//www.pppqb.icu/zmj/archive/2018/11/23/216076.html//www.pppqb.icu/zmj/comments/216076.html//www.pppqb.icu/zmj/archive/2018/11/23/216076.html#Feedback0//www.pppqb.icu/zmj/comments/commentRss/216076.html//www.pppqb.icu/zmj/services/trackbacks/216076.htmlҎ如下Q?/p>

1、用Acrobat打开一个Q?a target="_blank" style="color: #3f88bf; text-decoration-line: none;">PDF文Q?/p>

2、菜?-文g--打印配置Q打印机选择Adobe PDFQ点d侧的“属?#8221;Q蟩?#8221;Adobe PDF文属?#8221;界面

3、在点击”Adobe PDF面大小“右侧?#8221;d”

4、在跛_?#8221;d自定义页面大?#8220;中,如图C添?#8220;6?#8221;U张cdQƈ保存

5、用adobe pdf打印?/a>打印pdf→U张大小选择“6?#8221;卛_?/p>

zmj 2018-11-23 09:09 发表评论
]]>
动量守恒与能量守恒相矛盾吗? - սƵ2019|սع//www.pppqb.icu/zmj/archive/2018/11/20/216070.htmlzmjzmjTue, 20 Nov 2018 08:32:00 GMT//www.pppqb.icu/zmj/archive/2018/11/20/216070.html//www.pppqb.icu/zmj/comments/216070.html//www.pppqb.icu/zmj/archive/2018/11/20/216070.html#Feedback0//www.pppqb.icu/zmj/comments/commentRss/216070.html//www.pppqb.icu/zmj/services/trackbacks/216070.htmlhttps://www.zhihu.com/question/21540160

  • 证明末动能小于初动能Q?

牛顿定律 \mathbf{F }_{i }=m \mathbf{a }_{i }=m _{i }\frac{\, \mathrm{d } \, \dot{\mathbf{r }}_{i } \, }{\, \mathrm{d } \, t  \, } QFi是第i个物体受的合?/p>

\Rightarrow \mathbf{F }_{i }\, \mathrm{d } \, t  \, =m _{i }\, \mathrm{d } \, \dot{\mathbf{r }}_{i } \,

\Rightarrow \mathbf{F }_{i }\cdot \dot{\mathbf{r }}_{i }\, \mathrm{d } \, t  \, =\mathbf{F }_{i }\cdot \, \mathrm{d } \, \mathbf{r }_{i } \, =m _{i }\dot{\mathbf{r }}_{i }\cdot \, \mathrm{d } \, \dot{\mathbf{r }}_{i } \,

\Rightarrow \mathbf{F }_{i }\cdot \, \mathrm{d } \, \mathbf{r }_{i } \, =\, \mathrm{d } \left( \frac{1 }{2 }m _{i }{\dot{\mathbf{r }}_{i }}^{2 }\right)  \,

׃用T表动?/p>

\Rightarrow \sum _{i }\mathbf{F }_{i }\cdot \, \mathrm{d } \, \mathbf{r }_{i } \, \; =\sum _{i }\, \mathrm{d } \left( \frac{1 }{2 }m _{i }{\dot{\mathbf{r }}_{i }}^{2 }\right)  \, \; =\sum _{i }\, \mathrm{d } \, T _{i } \, \;

?\sum _{i }\mathbf{F }_{i }\cdot \, \mathrm{d } \, \mathbf{r }_{i } \, \; =\sum _{i }{\mathbf{F }_{i }}^{{\left( i \right) }} \cdot \, \mathrm{d } \, \mathbf{r }_{i } \, \; +\sum _{i }{\mathbf{F }_{i }}^{{\left( e \right) }} \cdot \, \mathrm{d } \, \mathbf{r }_{i } \, \; i表内Qe表外

=\, \mathrm{d } \, W _{?} \, +\, \mathrm{d } \, W _{?} \,

\Rightarrow \, \mathrm{d } \, W _{?} \, +\, \mathrm{d } \, W _{?} \, =\sum _{i }\, \mathrm{d } \, T _{i } \, \;

U个?/p>

\Rightarrow W _{?}+W _{?}=\sum _{i }\Delta T _{i }\; q是动能定理

如果非弹性碰撞的话,物体在受挤压力的时候向内凹P一定有内力负功Q还有很摩擦力Q按物理语言Q这些功转成了热

W _{?}+W _{?}=-Q < 0

所以动能关p?/p>

{\left( \sum _{i }T _{i }\; \right) }_{?}< {\left( \sum _{i }T _{i }\; \right) }_{?}


  • 动量守恒Q?/li>

\mathbf{F }_{i }\, \mathrm{d } \, t  \, =m _{i }\, \mathrm{d } \, \dot{\mathbf{r }}_{i } \,

\Rightarrow \sum _{i }\mathbf{F }_{i }\, \mathrm{d } \, t  \, \; =\sum _{i }m _{i }\, \mathrm{d } \, \dot{\mathbf{r }}_{i } \, \;

\sum _{i }\mathbf{F }_{i }\, \mathrm{d } \, t  \, \; =\sum _{i }{\mathbf{F }_{i }}^{{\left( i \right) }}\, \mathrm{d } \, t  \, \; +\sum _{i }{\mathbf{F }_{i }}^{{\left( e \right) }} \, \mathrm{d } \, t  \, \;

而物体间内力是成对出现的

\sum _{i }{\mathbf{F }_{i }}^{{\left( i \right) }}\; =\sum _{i \neq j }\mathbf{F }_{i j }\;

我们q有牛顿W三定律Q?/p>

\sum _{i \neq j }\mathbf{F }_{i j }\; =0

所以合力的冲量元即为合外力的冲量元

\sum _{i }\mathbf{F }_{i }\, \mathrm{d } \, t  \, \; =\sum _{i }{\mathbf{F }_{i }}^{{\left( e \right) }} \, \mathrm{d } \, t  \, \;

用Ii表示Wi个物体受合外力的冲量

\, \mathrm{d } \, \mathbf{I }_{i } \, ={\mathbf{F }_{i }}^{{\left( e \right) }}\, \mathrm{d } \, t  \,

\sum _{i }\mathbf{F }_{i }\, \mathrm{d } \, t  \, \; =\sum _{i }\, \mathrm{d } \, \mathbf{I }_{i } \, \; =\, \mathrm{d } \, \mathbf{I } \,

所以动量定理的微分式我们也有了QI是体pd外力的冲?/p>

\, \mathrm{d } \, \mathbf{I } \, =\sum _{i }m _{i }\, \mathrm{d } \, \dot{\mathbf{r }}_{i } \, \;

撞的话Q一瞬间质点pȝ合外力ؓ?/p>

\mathbf{I }=\mathbf{0 }

自然?/p>

\sum _{i }m _{i }\, \mathrm{d } \, \dot{\mathbf{r }}_{i } \, \; =\mathbf{0 }

所以积分后有我们的动量守恒律Q?/p>

\sum _{i }m _{i }\dot{\mathbf{r }}_{i }\; =?

\sum _{i }m _{i }\mathbf{v }_{i }\; =守恒?



作者:沈飞
链接Qhttps://www.zhihu.com/question/21540160/answer/469870033
来源Q知?br />著作权归作者所有。商业{载请联系作者获得授权,非商业{载请注明出处?/div>


zmj 2018-11-20 16:32 发表评论
]]>
双目视觉三维重徏框架 - սƵ2019|սع//www.pppqb.icu/zmj/archive/2018/11/14/216063.htmlzmjzmjWed, 14 Nov 2018 01:30:00 GMT//www.pppqb.icu/zmj/archive/2018/11/14/216063.html//www.pppqb.icu/zmj/comments/216063.html//www.pppqb.icu/zmj/archive/2018/11/14/216063.html#Feedback0//www.pppqb.icu/zmj/comments/commentRss/216063.html//www.pppqb.icu/zmj/services/trackbacks/216063.html阅读全文

zmj 2018-11-14 09:30 发表评论
]]>
关于双目立体视觉的一些ȝQ二Q?/title><link>//www.pppqb.icu/zmj/archive/2018/11/13/216060.html</link><dc:creator>zmj</dc:creator><author>zmj</author><pubDate>Tue, 13 Nov 2018 06:54:00 GMT</pubDate><guid>//www.pppqb.icu/zmj/archive/2018/11/13/216060.html</guid><wfw:comment>//www.pppqb.icu/zmj/comments/216060.html</wfw:comment><comments>//www.pppqb.icu/zmj/archive/2018/11/13/216060.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>//www.pppqb.icu/zmj/comments/commentRss/216060.html</wfw:commentRss><trackback:ping>//www.pppqb.icu/zmj/services/trackbacks/216060.html</trackback:ping><description><![CDATA[<div class="dpun">https://blog.csdn.net/u014629875/article/details/51340144<br /><br /><div class="dpun">上一只是对于双目立体视觉做了一个简单的介绍Q这里就我在做这个的时候碰到的一些问题做一个梳理?/div><div class="dpun"></div><div class="dpun">1.</div><div class="dpun"></div><div class="dpun">首先要纠正一下之前一个错误:cvRemap函数只接受灰度图。其实这个函数要求src与dst大小格式通道必须一致就行,q不需要一定ؓ灰度数据。当时下q个l论主要是因OpenCV的图像矩阉|据格式搞得很晕,Z先出个结果。后来有了要输出三通道数据的需要,倒是研究了一下OpenCV囑փ的数据格式?nbsp;</div><div class="dpun">矩阵元素cd包括了两部分信息Q首先是元素数据的类型,q有是该元素包含的通道个数?/div><div class="dpun"></div><div class="dpun">/*Mat_<uchar>对应的是CV_8UQMat_<uchar>对应的是CV_8UQMat_<char>对应的是CV_8SQMat_<int>对应的是CV_32SQMat_<float>对应的是CV_32FQMat_<double>对应的是CV_64F*/</div><div class="dpun"></div><div class="dpun">#define CV_8U   0</div><div class="dpun">#define CV_8S   1   </div><div class="dpun">#define CV_16U  2</div><div class="dpun">#define CV_16S  3</div><div class="dpun">#define CV_32S  4</div><div class="dpun">#define CV_32F  5</div><div class="dpun">#define CV_64F  6</div><div class="dpun">1</div><div class="dpun">2</div><div class="dpun">3</div><div class="dpun">4</div><div class="dpun">5</div><div class="dpun">6</div><div class="dpun">7</div><div class="dpun">8</div><div class="dpun">9</div><div class="dpun">灰度囑ְ用CV_8UQ三通道囑ְ用CV_8UC3Q像我得出的视差图数据就用CV_16S来存储,三维坐标信息的数据就用CV_32FC3的类型,M按需求定?/div><div class="dpun"></div><div class="dpun">2.</div><div class="dpun"></div><div class="dpun">通过双目获取物体的三l信息之后,我的目标是把q个三维信息投媄到地面^面上q行分析Q所以需要徏立空间坐标系与地面^面坐标系之间的{化关pR?nbsp;</div><div class="dpun">׃我只需要一个投影面Qƈ不需要关注这个面是不是就是地面,只需要与地面q卛_Q所以ƈ不需要事先测定地面,q样的话建立转化q单了很多?/div><div class="dpun"></div><div class="dpun">从左片中取一些地面上的像素点Q计出它们在空间坐标系中的三维坐标Q用最二乘拟合出q些Ҏ在的q面Ax+By+Cz = DQ?/div><div class="dpun">I间坐标pL以左相机光心为原点,视u为Z_基线为X_方向指向右相机)的右手系。由于我只要求一个投影^面,坐标pd以Q意,不妨取上q拟合^面Ax+By+Cz = D与Z轴的交点为地面^面坐标系的原点oQ与X轴的交点作ؓx轴正半u上的点,由此可徏立一个地面投影面的坐标系?/div><div class="dpun">几个坐标点:oQ?Q?QDQ;xQDADAQ?Q?Q;YQ?DAQD+DA2BD+DA2BQ?Q。可得到几个坐标向量Qox = QDADAQ?Q?DQ;oy = Q?DAQD+DA2BD+DA2BQ?DQ;oz = QAQBQCQ;</div><div class="dpun">假设I间中有一个点SQXsQYsQZsQ;向量oS = QXsQYsQZs - DQ;现在要求S在xoyq面上的投媄Q记作p。oS在oz上的投媄为h = os⋅oz|oz|⋅ozos·oz|oz|·ozQ所以op = oS - hQ得到op之后求它在ox和oy上的投媄卛_得到投媄面上的二l坐标?/div><div class="dpun">q样三维信息投影到了地面上Q可以进行分析了?/div><div class="dpun"></div><div class="dpun">3.</div><div class="dpun"></div><div class="dpun">我需要把相机拍摄的运动物体(行hQ提取出来,目前用的最多的有两U方法: </div><div class="dpun">Q?Q基于背景徏模: </div><div class="dpun">利用背景建模ҎQ提取出前景q动的目标,在目标区域内q行特征提取Q然后利用分cdq行分类Q判断是否包含行人;</div><div class="dpun"></div><div class="dpun">Q?Q基于统计学习的ҎQ?nbsp;</div><div class="dpun">目前行h最常用的方法,Ҏ大量的样本构人检分cd。提取的特征主要有目标的灰度、边~、纹理、颜艌Ӏ梯度直方图{信息?/div><div class="dpun"></div><div class="dpun">׃当前旉较紧Q现阶段只有背景建模提取前景的方法,后箋会尝试将两者结合用?nbsp;</div><div class="dpun">我用的是最单的ҎQ即帧差法,有两U普遍的ҎQ一U是前后帧相减,一U是三法,要代码如下:</div><div class="dpun"></div><div class="dpun">/*前后帧相?/</div><div class="dpun">VideoCapture video("../camera.avi");</div><div class="dpun">Mat img1, img2, gray1, gray2, grayDiff;</div><div class="dpun">int diff_threshold = 20;  //帧差阈?/div><div class="dpun"></div><div class="dpun">while(1)</div><div class="dpun">{</div><div class="dpun">    video.read(img1);</div><div class="dpun">    objectDetector(img1);</div><div class="dpun">    cvtColor(img1,gray1,CV_BGR2GRAY);</div><div class="dpun">    video.read(img2);</div><div class="dpun">    cvtColor(img2,gray2,CV_BGR2GRAY);</div><div class="dpun">    subtract(gray1,gray2,grayDiff);</div><div class="dpun"></div><div class="dpun">    for(int i = 0; i < grayDiff.rows; ++i)</div><div class="dpun">    {</div><div class="dpun">        for(int j = 0; j < grayDiff.cols; ++j)</div><div class="dpun">        {</div><div class="dpun">            if( abs(grayDiff.at<uchar>(i,j)) >= diff_threshold )</div><div class="dpun">            {</div><div class="dpun">                grayDiff.at<uchar>(i,j) = 255;</div><div class="dpun">            }</div><div class="dpun">            else</div><div class="dpun">            {</div><div class="dpun">                grayDiff.at<uchar>(i,j) = 0;</div><div class="dpun">            }</div><div class="dpun">        }</div><div class="dpun">    }</div><div class="dpun">    imshow("background",gray1);</div><div class="dpun">    imshow("zhencha",grayDiff);</div><div class="dpun"></div><div class="dpun">    char c = cvWaitKey(33);</div><div class="dpun">    if(c == 27)</div><div class="dpun">        break;</div><div class="dpun">}</div><div class="dpun">1</div><div class="dpun">2</div><div class="dpun">3</div><div class="dpun">4</div><div class="dpun">5</div><div class="dpun">6</div><div class="dpun">7</div><div class="dpun">8</div><div class="dpun">9</div><div class="dpun">10</div><div class="dpun">11</div><div class="dpun">12</div><div class="dpun">13</div><div class="dpun">14</div><div class="dpun">15</div><div class="dpun">16</div><div class="dpun">17</div><div class="dpun">18</div><div class="dpun">19</div><div class="dpun">20</div><div class="dpun">21</div><div class="dpun">22</div><div class="dpun">23</div><div class="dpun">24</div><div class="dpun">25</div><div class="dpun">26</div><div class="dpun">27</div><div class="dpun">28</div><div class="dpun">29</div><div class="dpun">30</div><div class="dpun">31</div><div class="dpun">32</div><div class="dpun">33</div><div class="dpun">34</div><div class="dpun">35</div><div class="dpun">36</div><div class="dpun"></div><div class="dpun">/*三?/</div><div class="dpun">VideoCapture video("../camera.avi");</div><div class="dpun">Mat img1, img2, gray1, gray2;</div><div class="dpun">Mat img3, gray3, grayDiff1, grayDiff2;</div><div class="dpun">int diff_threshold = 20;  //帧差阈?/div><div class="dpun"></div><div class="dpun">while(1)</div><div class="dpun">{</div><div class="dpun">    video.read(img1);</div><div class="dpun">    video.read(img2);</div><div class="dpun">    video.read(img3);</div><div class="dpun">    cvtColor(img1,gray1,CV_BGR2GRAY);</div><div class="dpun">    cvtColor(img2,gray2,CV_BGR2GRAY);</div><div class="dpun">    cvtColor(img3,gray3,CV_BGR2GRAY);</div><div class="dpun"></div><div class="dpun">    subtract(gray1,gray2,grayDiff1);</div><div class="dpun">    subtract(gray2,gray3,grayDiff2);</div><div class="dpun"></div><div class="dpun">    for(int i = 0; i < grayDiff1.rows; ++i)</div><div class="dpun">    {</div><div class="dpun">        for(int j = 0; j < grayDiff2.cols; ++j)</div><div class="dpun">        {</div><div class="dpun">            if( abs(grayDiff1.at<uchar>(i,j)) >= diff_threshold )</div><div class="dpun">            {</div><div class="dpun">                grayDiff1.at<uchar>(i,j) = 255;</div><div class="dpun">            }</div><div class="dpun">            else</div><div class="dpun">            {</div><div class="dpun">                grayDiff1.at<uchar>(i,j) = 0;</div><div class="dpun">            }</div><div class="dpun">            if( abs(grayDiff2.at<uchar>(i,j)) >= diff_threshold )</div><div class="dpun">            {</div><div class="dpun">                grayDiff2.at<uchar>(i,j) = 255;</div><div class="dpun">            }</div><div class="dpun">            else</div><div class="dpun">            {</div><div class="dpun">                grayDiff2.at<uchar>(i,j) = 0;</div><div class="dpun">            }</div><div class="dpun">        }</div><div class="dpun">    }</div><div class="dpun">    bitwise_and(grayDiff1,grayDiff2,grayDiff);//和运?/div><div class="dpun">    imshow("background",img2);</div><div class="dpun">    imshow("zhencha",grayDiff);</div><div class="dpun">    char c = cvWaitKey(33);</div><div class="dpun">    if(c == 27)</div><div class="dpun">        break;</div><div class="dpun">}</div><div class="dpun">1</div><div class="dpun">2</div><div class="dpun">3</div><div class="dpun">4</div><div class="dpun">5</div><div class="dpun">6</div><div class="dpun">7</div><div class="dpun">8</div><div class="dpun">9</div><div class="dpun">10</div><div class="dpun">11</div><div class="dpun">12</div><div class="dpun">13</div><div class="dpun">14</div><div class="dpun">15</div><div class="dpun">16</div><div class="dpun">17</div><div class="dpun">18</div><div class="dpun">19</div><div class="dpun">20</div><div class="dpun">21</div><div class="dpun">22</div><div class="dpun">23</div><div class="dpun">24</div><div class="dpun">25</div><div class="dpun">26</div><div class="dpun">27</div><div class="dpun">28</div><div class="dpun">29</div><div class="dpun">30</div><div class="dpun">31</div><div class="dpun">32</div><div class="dpun">33</div><div class="dpun">34</div><div class="dpun">35</div><div class="dpun">36</div><div class="dpun">37</div><div class="dpun">38</div><div class="dpun">39</div><div class="dpun">40</div><div class="dpun">41</div><div class="dpun">42</div><div class="dpun">43</div><div class="dpun">44</div><div class="dpun">45</div><div class="dpun">46</div><div class="dpun">47</div><div class="dpun">48</div><div class="dpun">得到前景之后可以利用之前徏立的坐标p{换得Ch在地面上的投影,x需要用的深度信息?nbsp;</div><div class="dpun"></div><div class="dpun">--------------------- </div><div class="dpun">作者:Array03 </div><div class="dpun">来源QCSDN </div><div class="dpun">原文Qhttps://blog.csdn.net/u014629875/article/details/51340144 </div><div class="dpun">版权声明Q本文ؓ博主原创文章Q{载请附上博文链接Q?/div></div><img src ="//www.pppqb.icu/zmj/aggbug/216060.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="//www.pppqb.icu/zmj/" target="_blank">zmj</a> 2018-11-13 14:54 <a href="//www.pppqb.icu/zmj/archive/2018/11/13/216060.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于双目立体视觉的一些ȝQ一Q?/title><link>//www.pppqb.icu/zmj/archive/2018/11/13/216059.html</link><dc:creator>zmj</dc:creator><author>zmj</author><pubDate>Tue, 13 Nov 2018 06:52:00 GMT</pubDate><guid>//www.pppqb.icu/zmj/archive/2018/11/13/216059.html</guid><wfw:comment>//www.pppqb.icu/zmj/comments/216059.html</wfw:comment><comments>//www.pppqb.icu/zmj/archive/2018/11/13/216059.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>//www.pppqb.icu/zmj/comments/commentRss/216059.html</wfw:commentRss><trackback:ping>//www.pppqb.icu/zmj/services/trackbacks/216059.html</trackback:ping><description><![CDATA[<div class="dpun">https://blog.csdn.net/u014629875/article/details/51227534</div><div class="dpun">׃目和毕讄需要,最q在做一些立体视觉的东西Qȝ是把立体视觉建立h了,中途查了很多相兌料,q里做一个ȝ?/div><div class="dpun"></div><div class="dpun">1.介:</div><div class="dpun">双目视觉是模拟hc视觉原理,使用计算动感知距ȝҎ。从两个或者多个点观察一个物体,获取在不同视角下的图像,Ҏ囑փ之间像素的匹配关p,通过三角量原理计算出像素之间的偏移来获取物体的三维信息。得C物体的景׃息,可以计出物体与相Z间的实际距离Q物?l大,两点之间实际距离?/div><div class="dpun"></div><div class="dpun">2.建立立体视觉</div><div class="dpun">Z_地求得某个点在三l空间里的深度信息,我们需要获得的参数有焦距f、视差d、摄像头中心距TxQ?nbsp;</div><div class="dpun">Z获得某个点的X坐标和Y坐标Q还需要知道左叛_q面的坐标系与立体坐标系中原点的偏移cx和cy?nbsp;</div><div class="dpun">因此我们需要进行下列三个步骤:相机标定Q图像校正,立体匚w?/div><div class="dpun"></div><div class="dpun">相机标定</div><div class="dpun">标定目的Q获取相机的内参Q焦距,囑փ中心Q畸变系数等Q和外参QRQ旋转)矩阵TQ^U)矩阵Q?nbsp;</div><div class="dpun">相机标定需要采集标定数据,通常使用打印盘格的U怽为特制的标定参照物,摄像头获取该物体的图像,q由此计摄像头的内外参数?/div><div class="dpun">相机标定有两U方法: </div><div class="dpun">Ҏ一QBouguet的Matlab标定工具(//www.vision.caltech.edu/bouguetj/calib_doc/Q;有比较详l的介绍和用方法,用v来还是比较方便的Q只不过做完标定要l的话要把标定结果存入xml导入OpenCV再进行?nbsp;</div><div class="dpun">Ҏ二:OpenCV的cvStereoCalibrateQ在《学习OpenCV》第11Q?2章有比较详细的介l?2章后有相关程序代码?/div><div class="dpun">双目囑փ校正</div><div class="dpun">双目校正是根据摄像头定标后获得的单目内参数据Q焦距、成像原炏V畸变系敎ͼ和双目相对位|关p(旋{矩阵和^Ud量)Q分别对左右视图q行消除畸变和行对准Q得左双囄成像原点坐标一致、两摄像头光轴^行、左x像^面共面、对极线行对齐。将左右视图调整成完全^行对准的理想形式Q如下图Q?nbsp;</div><div class="dpun">  </div><div class="dpun">校正反映到图像上是要把消除畸变后的两幅囑փ严格地行对应Q得两q图像的ҎU恰好在同一水^U上Q这样一q图像上L一点与其在另一q图像上的对应点必然具有相同的行号Q只需在该行进行一l搜索即可匹配到对应炏V下图来自于Stefano Mattoccia </div><div class="dpun">“Stereo vision: algorithms and applications”//vision.deis.unibo.it/~smatt/Seminars/StereoVision.pdf </div><div class="dpun">Q这个ppt对立体视觉做了一个很详尽的讲qͼM可以对立体视觉方面有一个比较好的了解) </div><div class="dpun"></div><div class="dpun">我在q部分用的是OpenCV中的cvStereoRectifyQ得出校准参C后用cvRemap来校准输入的左右囑փ。这里要提一下cvRemapq个函数src与dst大小格式通道必须一_所以在使用之前要先对左叛_像做处理?/div><div class="dpun"></div><div class="dpun">立体匚w</div><div class="dpun">立体匚w主要是通过扑և每对囑փ间的对应关系Q根据三角测量原理,得到视差图;在获得了视差信息后,Ҏ投媄模型很容易地可以得到原始囑փ的深度信息和三维信息?nbsp;</div><div class="dpun">立体匚w是徏立立体视觉中最重要的一环,立体匚w的效果直接媄响得到的三维信息?nbsp;</div><div class="dpun">׃现在只是使用了OpenCV的BMҎ和SGBMҎQƈ没有做深入的了解Q所以关于这斚w后箋会再写篇博客讨论一下这斚w的问题?nbsp;</div><div class="dpun">BMҎQ?/div><div class="dpun"></div><div class="dpun">CvStereoBMState *BMState = cvCreateStereoBMState();</div><div class="dpun">assert(BMState != 0);</div><div class="dpun"></div><div class="dpun">BMState->preFilterSize=41;</div><div class="dpun">BMState->preFilterCap=31;</div><div class="dpun">BMState->SADWindowSize=41;</div><div class="dpun">BMState->minDisparity=-64;</div><div class="dpun">BMState->numberOfDisparities=128;</div><div class="dpun">BMState->textureThreshold=10;</div><div class="dpun">BMState->uniquenessRatio=10;</div><div class="dpun">1</div><div class="dpun">2</div><div class="dpun">3</div><div class="dpun">4</div><div class="dpun">5</div><div class="dpun">6</div><div class="dpun">7</div><div class="dpun">8</div><div class="dpun">9</div><div class="dpun">10</div><div class="dpun">SGBMҎQ?/div><div class="dpun"></div><div class="dpun">cv::StereoSGBM sgbm;</div><div class="dpun">sgbm.preFilterCap = 63;</div><div class="dpun">int SADWindowSize=11;</div><div class="dpun">int cn = 1;</div><div class="dpun">sgbm.SADWindowSize = SADWindowSize > 0 ? SADWindowSize : 3;</div><div class="dpun">sgbm.P1 = 4*cn*sgbm.SADWindowSize*sgbm.SADWindowSize;</div><div class="dpun">sgbm.P2 = 32*cn*sgbm.SADWindowSize*sgbm.SADWindowSize;</div><div class="dpun">sgbm.minDisparity = 0;</div><div class="dpun">sgbm.numberOfDisparities = 32;</div><div class="dpun">sgbm.uniquenessRatio = 10;</div><div class="dpun">sgbm.speckleWindowSize = 100;</div><div class="dpun">sgbm.speckleRange = 32;</div><div class="dpun">sgbm.disp12MaxDiff = 1;</div><div class="dpun">1</div><div class="dpun">2</div><div class="dpun">3</div><div class="dpun">4</div><div class="dpun">5</div><div class="dpun">6</div><div class="dpun">7</div><div class="dpun">8</div><div class="dpun">9</div><div class="dpun">10</div><div class="dpun">11</div><div class="dpun">12</div><div class="dpun">13</div><div class="dpun">立体匚w后得到视差图后获取三l信息的方式Q世界坐标系是以左相机光心ؓ原点Q光轴ؓZ_基线为X轴的xp) </div><div class="dpun">q里有一点要注意Q立体匹配得出的视差l果是以16位符h的Ş式的存储的,Z_ֺ需要,所有的视差在输出时都扩大了16?2^4)Q因此,在实际求距离ӞcvReprojectTo3D出来的X/W,Y/W,Z/W都要乘以16 (也就是W除以16)Q才能得到正的三维坐标信息?nbsp;</div><div class="dpun">一个简单的输出某个像素点三l信息的例子Q?/div><div class="dpun"></div><div class="dpun">cvReprojectImageTo3D(disp,depth,&_Qtest);//_Qtest是双目校正得到的Q矩阵</div><div class="dpun">Point p;</div><div class="dpun">p.x = 400;</div><div class="dpun">p.y = 300;</div><div class="dpun"></div><div class="dpun">Mat tempDepth = Mat(depth);</div><div class="dpun">cout << "in world coordinate: " << tempDepth.at<Vec3f>(p)*16 << endl;</div><div class="dpun">--------------------- </div><div class="dpun">作者:Array03 </div><div class="dpun">来源QCSDN </div><div class="dpun">原文Qhttps://blog.csdn.net/u014629875/article/details/51227534 </div><div class="dpun">版权声明Q本文ؓ博主原创文章Q{载请附上博文链接Q?/div><img src ="//www.pppqb.icu/zmj/aggbug/216059.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="//www.pppqb.icu/zmj/" target="_blank">zmj</a> 2018-11-13 14:52 <a href="//www.pppqb.icu/zmj/archive/2018/11/13/216059.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>双目立体视觉的数学原?/title><link>//www.pppqb.icu/zmj/archive/2018/11/13/216057.html</link><dc:creator>zmj</dc:creator><author>zmj</author><pubDate>Tue, 13 Nov 2018 06:31:00 GMT</pubDate><guid>//www.pppqb.icu/zmj/archive/2018/11/13/216057.html</guid><wfw:comment>//www.pppqb.icu/zmj/comments/216057.html</wfw:comment><comments>//www.pppqb.icu/zmj/archive/2018/11/13/216057.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>//www.pppqb.icu/zmj/comments/commentRss/216057.html</wfw:commentRss><trackback:ping>//www.pppqb.icu/zmj/services/trackbacks/216057.html</trackback:ping><description><![CDATA[<div class="dpun">1.前言戏说</div><div class="dpun">双目立体视觉是基于视差原理,由多q图像获取物体三l几何信息的Ҏ。在机器视觉pȝ中,双目视觉一般由双摄像机从不同角度同时获取周围景物的两幅数字囑փQ或有由单摄像机在不同时M不同角度获取周围景物的两q数字图像,q基于视差原理即可恢复出物体三维几何信息Q重建周围景物的三维形状与位|?/div><div class="dpun">双目视觉有的时候我们也会把它称Z视,是hcd用双D取环境三l信息的主要途径。从目前来看Q随着机器视觉理论的发展,双目立体视觉在机器视觉研I中发回来看了越来越重要的作用。本帖子主要研I了双目视觉的数学原理?/div><div class="dpun">2.双目立体视觉的数学原?/div><div class="dpun">双目立体视觉是基于视差,׃角法原理q行三维信息的获取,即由两个摄像机的囑փq面和北侧物体之间构成一个三角Ş。一直两个摄像机之间的位|关p,便可以获得两摄像机公p场内物体的三l尺寸及I间物体特征点的三维坐标。所以,双目视觉pȝ一般由两个摄像机构成?/div><div class="dpun">2.1 双目立体视觉三维量原理</div><div class="dpun"></div><div class="dpun">上图所CZؓ单的q双目立体成像原理图,两摄像机的投׃心连U的距离Q即基线距离B。两摄像机在同一时刻观看时空物体的同一特征点PQ分别在“左眼”?#8220;右眼”上获取了点P的图像,他们的坐标分别ؓPleft=QXleft,YleftQ;Pright=QXright,YrightQ。将定两摄像机的囑փ在同一q面上,则特征点P的图像坐标的Y坐标一定是相同的,即Yleft = Yright =Y。由三角几何关系可以得到如下关系式:</div><div class="dpun"></div><div class="dpun">则视差ؓQDisparity=Xleft-Xright.由此可以计算出特征点P在摄像机坐标pM的三l坐标:</div><div class="dpun"></div><div class="dpun">因此Q左摄像机像面上的Q意一点只要能在右摄像机像面上扑ֈ对应的匹配点Q就完全可以定该点的三l坐标。这U方法是点对点的q算Q像q面上所有点只要存在相应的匹配点Q就可以参与上述q算Q从而获取对应的三维坐标?/div><div class="dpun">2.2 双目立体视觉数学模型</div><div class="dpun"></div><div class="dpun">在分析了最单的q双目立体视觉的三l测量原理基上,现在我们有能力来考虑一般情c如上图所C,讑ַ摄像机O-xyz位于世界坐标pd点,且没有发生旋转,囑փ坐标pMؓOl-X1Y1Q有效焦距ؓflQ右摄像机坐标系为Or-xyzQ图像坐标系为Or-XrYrQ有效焦距ؓfr。那么根据摄像机的投模型我们就能得到如下关pdQ?/div><div class="dpun">  </div><div class="dpun">因ؓO-xyz坐标pMOr-xryrzr坐标pM间的位置关系可通过I间转换矩阵MLr表示为:</div><div class="dpun"></div><div class="dpun">同理Q对于O-xyz坐标pM的空间点Q两个摄像机面点之间的对应关pd以表CZؓQ?/div><div class="dpun"></div><div class="dpun">于是Q空间点三维坐标可以表示?/div><div class="dpun"></div><div class="dpun">因此Q只要我们通过计算机标定技术获得左双机内参?焦距fr,fl和空间点在左x像机中的囑փ坐标Q就能够重构点的三l空间坐标?/div><div class="dpun">--------------------- </div><div class="dpun">作者:沈子?nbsp;</div><div class="dpun">来源QCSDN </div><div class="dpun">原文Qhttps://blog.csdn.net/shenziheng1/article/details/52883536 </div><div class="dpun">版权声明Q本文ؓ博主原创文章Q{载请附上博文链接Q?/div><img src ="//www.pppqb.icu/zmj/aggbug/216057.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="//www.pppqb.icu/zmj/" target="_blank">zmj</a> 2018-11-13 14:31 <a href="//www.pppqb.icu/zmj/archive/2018/11/13/216057.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>最二乘法拟合圆公式推导及其实?/title><link>//www.pppqb.icu/zmj/archive/2018/11/05/216035.html</link><dc:creator>zmj</dc:creator><author>zmj</author><pubDate>Mon, 05 Nov 2018 05:33:00 GMT</pubDate><guid>//www.pppqb.icu/zmj/archive/2018/11/05/216035.html</guid><wfw:comment>//www.pppqb.icu/zmj/comments/216035.html</wfw:comment><comments>//www.pppqb.icu/zmj/archive/2018/11/05/216035.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>//www.pppqb.icu/zmj/comments/commentRss/216035.html</wfw:commentRss><trackback:ping>//www.pppqb.icu/zmj/services/trackbacks/216035.html</trackback:ping><description><![CDATA[<div class="dpun">https://blog.csdn.net/Jacky_Ponder/article/details/70314919<br /><br /><div class="dpun">1.1最二乘拟合圆介绍与推?/div><div class="dpun">最二乘法(least squares analysis)是一U数学优化技术,它通过最化误差的^方和扑ֈ一l数据的最佛_数匹配。最二乘法是用最的方法求得一些绝对不可知的真|而o误差qx之和为最来L一l数据的最佛_配函数的计算ҎQ最二乘法通常用于曲线拟合 (least squares fitting) 。最二乘圆拟合Ҏ是一U基于统计的方法,即便是图像中圆Ş目标受光照强度不均等因素的媄响而生边~缺失,也不会媄响圆心的定位和半径的,若边~定位精轮廓清晎ͼ最二乘法可实C像素U别的精拟合定位?/div><div class="dpun"></div><div class="dpun">q里有拟合圆曲线的公式推DE和vc实现?/div><div class="dpun"></div><div class="dpun"></div><div class="dpun"></div><div class="dpun"></div><div class="dpun"></div><div class="dpun"></div><div class="dpun"></div><div class="dpun"></div><div class="dpun"></div><div class="dpun"></div><div class="dpun"></div><div class="dpun"></div><div class="dpun"></div><div class="dpun"></div><div class="dpun">1.2VC实现的代?/div><div class="dpun">[cpp] view plain copy</div><div class="dpun"><code class="language-cpp">void CViewActionImageTool::LeastSquaresFitting()  </div><div class="dpun">{  </div><div class="dpun">    if (m_nNum<3)  </div><div class="dpun">    {  </div><div class="dpun">        return;  </div><div class="dpun">    }  </div><div class="dpun">  </div><div class="dpun">    int i=0;  </div><div class="dpun">  </div><div class="dpun">    double X1=0;  </div><div class="dpun">    double Y1=0;  </div><div class="dpun">    double X2=0;  </div><div class="dpun">    double Y2=0;  </div><div class="dpun">    double X3=0;  </div><div class="dpun">    double Y3=0;  </div><div class="dpun">    double X1Y1=0;  </div><div class="dpun">    double X1Y2=0;  </div><div class="dpun">    double X2Y1=0;  </div><div class="dpun">  </div><div class="dpun">    for (i=0;i<m_nNum;i++)  </div><div class="dpun">    {  </div><div class="dpun">        X1 = X1 + m_points[i].x;  </div><div class="dpun">        Y1 = Y1 + m_points[i].y;  </div><div class="dpun">        X2 = X2 + m_points[i].x*m_points[i].x;  </div><div class="dpun">        Y2 = Y2 + m_points[i].y*m_points[i].y;  </div><div class="dpun">        X3 = X3 + m_points[i].x*m_points[i].x*m_points[i].x;  </div><div class="dpun">        Y3 = Y3 + m_points[i].y*m_points[i].y*m_points[i].y;  </div><div class="dpun">        X1Y1 = X1Y1 + m_points[i].x*m_points[i].y;  </div><div class="dpun">        X1Y2 = X1Y2 + m_points[i].x*m_points[i].y*m_points[i].y;  </div><div class="dpun">        X2Y1 = X2Y1 + m_points[i].x*m_points[i].x*m_points[i].y;  </div><div class="dpun">    }  </div><div class="dpun">  </div><div class="dpun">    double C,D,E,G,H,N;  </div><div class="dpun">    double a,b,c;  </div><div class="dpun">    N = m_nNum;  </div><div class="dpun">    C = N*X2 - X1*X1;  </div><div class="dpun">    D = N*X1Y1 - X1*Y1;  </div><div class="dpun">    E = N*X3 + N*X1Y2 - (X2+Y2)*X1;  </div><div class="dpun">    G = N*Y2 - Y1*Y1;  </div><div class="dpun">    H = N*X2Y1 + N*Y3 - (X2+Y2)*Y1;  </div><div class="dpun">    a = (H*D-E*G)/(C*G-D*D);  </div><div class="dpun">    b = (H*C-E*D)/(D*D-G*C);  </div><div class="dpun">    c = -(a*X1 + b*Y1 + X2 + Y2)/N;  </div><div class="dpun">  </div><div class="dpun">    double A,B,R;  </div><div class="dpun">    A = a/(-2);  </div><div class="dpun">    B = b/(-2);  </div><div class="dpun">    R = sqrt(a*a+b*b-4*c)/2;  </div><div class="dpun">  </div><div class="dpun">    m_fCenterX = A;  </div><div class="dpun">    m_fCenterY = B;  </div><div class="dpun">    m_fRadius = R;  </div><div class="dpun">  </div><div class="dpun">    return;  </div><div class="dpun">}</code>  </div><div class="dpun">--------------------- </div><div class="dpun">作者:Jacky_Ponder </div><div class="dpun">来源QCSDN </div><div class="dpun">原文Qhttps://blog.csdn.net/Jacky_Ponder/article/details/70314919 </div><div class="dpun">版权声明Q本文ؓ博主原创文章Q{载请附上博文链接Q?/div></div><img src ="//www.pppqb.icu/zmj/aggbug/216035.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="//www.pppqb.icu/zmj/" target="_blank">zmj</a> 2018-11-05 13:33 <a href="//www.pppqb.icu/zmj/archive/2018/11/05/216035.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Math concepts / 数学概念 - սƵ2019|սع//www.pppqb.icu/zmj/archive/2018/10/24/216021.htmlzmjzmjWed, 24 Oct 2018 07:25:00 GMT//www.pppqb.icu/zmj/archive/2018/10/24/216021.html//www.pppqb.icu/zmj/comments/216021.html//www.pppqb.icu/zmj/archive/2018/10/24/216021.html#Feedback0//www.pppqb.icu/zmj/comments/commentRss/216021.html//www.pppqb.icu/zmj/services/trackbacks/216021.html0 Q当k充分大时有: ∥∥x(k+1)−x∗∥∥∥∥x(k)−x∗∥∥2≤α 我们知道上面的符号||……||是范数的W号Q范数可以用来度量向量之间的距离。对最单的情况——一l向量来?#8212;—上面的各个相减的式子可以表CZ点之间的距离? Q?Q卷U? //www.codelast.com/?p=994 Q?Q最二乘的理论依据 //www.codelast.com/?p=1027 Q?QPowell法 //www.codelast.com/?p=388 Q?Q黄金比例搜索算? //www.codelast.com/?p=434 Q?Q奇异方E组 行退化或列退化的方程l称为奇异方E组? Q?0Q奇异值分? 一U处理奇异问题的ҎQ有时能奇异问题{为非奇异问题来解冟? 在很长时间内Q奇异值分解都无法q行处理Q虽?Google 早就有了MapReduce {ƈ行计的工具Q但是由于奇异值分解很难拆成不相关子运,即?Google 内部以前也无法利用ƈ行计的优势来分解矩阵)? 2007q初QGoogle 中国的张智威博士和几个中国的工程师及实习生已l实C奇异值分解的q行法Q这?Google中国对世界的一个A献? Q?1Q主? 在解U性方E组Ӟ通过加减乘除Q将pL矩阵的a00Qa11Qa22Q?#8230;…Q即d角线上的元素Q化为单位矩늚形式Q其他元素均化ؓӞQ在每一ơ计过E中Q用作除数的元素即ؓd/d素。如果计过E中完全没有“行交?#8221;?#8220;列交?#8221;Q则q种ҎUCؓ“不选主?#8221;的方法? Q?2Q完全主元法 & 部分d? 在解U性方E组的选主元法中,如果只有行交换操作,则称该方法ؓ部分d法;如果行交换和列交换操作都有,则称该方法ؓ完全d法? Q?3Q矩늚初等变换 a、交换矩늚两行Q列Q; b、用一个不为零的数乘矩늚某一??Q? c、用一个数乘矩阉|一行(列)加到另一行(列)上? Q?4Q外推法 一U?“Ҏ已知的数值推断已知数D围以外的数?#8221; 的方法? Q?5QRidders求导法 //www.codelast.com/?p=1419 Q?6Q线?非线性规? W一ơ看到这个名词的时候,你一定有一U它好高q感觉Q但实际上它不过?#8220;最优化”问题的一U?#8220;特例”|了。当最优化问题中的自变量的定义域是有限l空间中的一个子集时Q这U问题就UCؓU?非线性规划。D个简单的例子来说Q对一个自变量?l的函数f(x)=ax+bQ自变量的定义域为(1, 9.8Q,它是1l空间的一个子集,那么Q通过最优化Ҏ来求解a、b的问题,q为线性规划。但是要注意Q当x只能取几个值时Q例如x只能???.8q几个|则这U最优化问题׃叫线?非线性规划了Q而是叫组合优化。有时候这些界限划分得很清晰的概念反而让得很hQ我认ؓ它们实对理解问题vC负面的作用? q_看到的很多资料中Q对q些cM的概忉|弄玄虚的解释什么的Q最让h不舒服了Q? Q?7Q凸? 凔R在最优化领域占有重要C。其数学定义是:设有Nl空间的子集DQ如果对于Q意的向量Q也可以说是Nl空间中的点QX1QX2∈DQ以及Q意的实数a∈[0, 1]Q都有aX1+(1-a)X2∈DQ则UD为凸集。凸集的几何意义是:如果D为非I集合,则连接D中Q意两个点X1、X2的线D仍属于该集合? q似乎有点o解:aX1+(1-a)X2与两点之间的q线有什么关pdQ它表示q接q两点的U段上的L一炏V简单推导如下:假设X为线DX1X2上的M点,则向量X2XQ向量应该打上箭_但是Z书写方便Q我q略了Q^行于向量X2X1Q且0≤ |X2X| ≤ |X2X1| 。因此,存在a∈[0, 1]Q?X2X = a X2X1Q即QX - X2 = a (X1 - X2)Q即 X = aX1+(1-a)X2 。由于X是线DX1X2上Q一点,因此前面的结Za自明? Q?8Q半正定矩阵 n×n的矩阵MQ若对于L非零的x∈RnQ有xTMx≥0Q则UM为半正定矩阵? Q?9Q奇异矩? 首先Q一个矩阵必L斚wQ才有奇异或非奇异的概念。其ơ,若该矩阵的行列式?Q则其ؓ奇异矩阵Q否则就是非奇异矩阵? 可逆矩阉|非奇异矩阵,非奇异矩阵也是可逆矩c? Q?0Q最速下降法/steepest descentQ牛法/newtonQ共轭方向法/conjugate directionQ共轭梯度法/conjugate gradientQetc. //www.codelast.com/?p=2573 Q?1Q水q集 假设X∈RnQ则集合S = {X∈Rn| f(X) ≤ a}UCؓ一个水q集Q其中a为常数? Q?2Q由两两U性无关的列向量构成的矩阵是满U的 先看wikipedia的定义,很Ҏ明白了:两两U性无关的列向量构成的矩阵必然是满U的? Q?3Q线性流? “Ş”QmanifoldQ是数学中用于描q几何Ş体的一个概念,它是指局部具有欧几里得空间性质的空间?Ƨ几里得I间是最单的Ş的实例。欧几里得空间也被理解ؓU性流形? q个词听h挺怪的Q我惻I要记住它Q可以从表面含义来看Q?#8220;Ş”——动的ŞӞ光滑的;“U?#8221;——q箋的。结合v来,Nl欧几里得空间Rn是q么回事? Q?4Q满U与正定的一个关p? 设C为满U矩阵,A为正定的实对U矩阵,则CTAC是正定的。因此可推出Q若C是由两两U性无关的向量构成的矩阵(则其为满U的Q,则CTAC正定? Q?5Q二ơ型 二次型是一些变量上的二ơ齐ơ多式。齐ơ多式是指各项的L数均相同的多式 Q例?x5+ 2x3y2+ 9xy4是一个五ơ的双变元(x和yQ齐ơ多式Q其各项的L数都?? Q?6Q正定二ơ型 设有实二ơ型 f = XTAXQ若对于MX≠0Q都?f(X)>0Q则U?f 为正定二ơ型Qƈ且称对称矩阵A为正定的。反之,?f(X)<0Q则U?f 定二ơ型? Q?7Q正定矩阵均可逆,q且光也是正定矩? Q?8Q柯西不{式/柯西-施瓦茨不{式/Cauchy–Schwarz inequality 相当有用的一个不{式Q表辑ּ如下Q? 若把q个式子写成两个向量uQv的Ş式,则ؓQ? Q?9Q大O和小oQ同阶无I小与高阶无I小 大O和小o分别代表同阶无穷与高阶无穷,注意不要弄؜了。例如,β?#945;是同阶无I小Q记?#946;=O(α)Q?#946;是比α高阶的无I小Q记?#946;=o(α) ? Q?0Q稀疏矩阵:元素大部分ؓ0的矩? Q?1Q关于正定矩阵共轭的非零向量l线性无? Q?2Q实对称矩阵A正定的充分必要条件是存在可逆矩阵CQ?A=CTC。由于可逆矩阉|正定矩阵Q所以对U正定矩阵A满Q存在正定矩阵DQ得A=DTD Q?3Q每一个秩一矩阵都可以化Z个列向量与一个行向量之积 例如A为n×n的秩一矩阵Q则存在n×1向量uQvQ得A=uvT Q?4Q驻点及鞍点 ȝQ一阶导Cؓ0的点。它包括3U类型:极小炏V极大点、鞍炏V? 鞍点Q沿某些方向是极点Q沿另一些方向是极大点,q样的点UCؓ鞍点。想像一下马鞍的形状Q马鞍凹下去的那部分的最低点Q就是鞍点的一个例子(囄来源于网l,感谢原作者)Q? Q?5Q雅可比矩阵QJacobi matrixQ不一定是斚wQn×n的矩阵) Q?6Q无解的U性方E组被称为是不相容的Q有一或无I多个解的线性方E组被称为是相容? Q?7Q若一个矩늻q一pd行初{变换可以变成另一个矩阵,则称q两个矩阉|行等L Q?8Q一元二ơ方Eax2+bx+c=0(a≠0)的求根公?

zmj 2018-10-24 15:25 发表评论
]]>
在Qt中用sleep - սƵ2019|սع//www.pppqb.icu/zmj/archive/2018/10/09/215998.htmlzmjzmjTue, 09 Oct 2018 09:33:00 GMT//www.pppqb.icu/zmj/archive/2018/10/09/215998.html//www.pppqb.icu/zmj/comments/215998.html//www.pppqb.icu/zmj/archive/2018/10/09/215998.html#Feedback0//www.pppqb.icu/zmj/comments/commentRss/215998.html//www.pppqb.icu/zmj/services/trackbacks/215998.htmlhttps://blog.csdn.net/tingsking18/article/details/5304254

关于sleep函数Q我们先来看一下他的作用:sleep函数是调用sleep函数的线E休眠,U程d攑ּ旉片。当l过指定的时间间隔后Q再启动U程Ql执行代码?/span>sleep函数q不能v到定时的作用Q主要作用是延时。在一些多U程中可能会看到sleep(0);其主要目的是让出旉片?/span>sleep函数的精度非怽Q当pȝ繁忙的时候它_ֺ也就低Q有时候我们休?/span>1U,可能3U后才能l箋执行。它的精度取决于U程自n优先U、其他线E的优先U,以及U程的数量等因素Q所以说sleep函数是不能用来精计时的?/span>

Qt为我们提供了几个可以用于U程Sleep的函敎ͼ分别是:

void QThread::sleep ( unsigned long secs )   [static protected]

void QThread::msleep ( unsigned long msecs )   [static protected]

void QThread::usleep ( unsigned long usecs )   [static protected]

sleep的单位分别是U、毫U、微U?/span>

但是现在问题出来了,请仔l看上面的函数定义,函数的访问权限都?/span>protectedQ这意味着Q我们必dQThread或者他的承类中用这三个函数?/span>

但是我们可能需要在非?/span>QThread的类中来使用sleep函数。那q该q么办呢Q下面我q大家提供几种解决Ҏ?/span>

1.    processEvents

    QTime dieTime = QTime::currentTime().addMSecs(svalue);

    while( QTime::currentTime() < dieTime )

    QCoreApplication::processEvents(QEventLoop::AllEvents, 100);

调用processEvents会让Qtl箋处理U程所在的消息队列中未处理的消息,直到消息队列中没有消息可以处理。当q行长时间的操作的时候可以调用此函数(比方说拷贝文?/span>)。这个函数可能和我们要?/span>msleep的本意有差别Q但是用它可以?/span>svalue旉内处?/span>eventsQ从而达到类?/span>sleep的目的?/span>

2.        QWaitCondition

       QWaitCondition wait;

       wait.wait(time);

wait的单位是millisecondsQ但?/span>wait?/span>sleep的作用是不同的?/span>

sleep()Ҏ是ɾU程停止一D|间的Ҏ。在sleep 旉间隔期满后,U程不一定立x复执行。这是因为在那个时刻Q其它线E可能正在运行而且没有被调度ؓ攑ּ执行Q除?/span>

(a)“醒来”的线E具有更高的优先U?/span>

(b)正在q行的线E因为其它原因而阻塞?/span>

wait()会调用它的U程暂停执行Q被调对象进入等待状态,直到被唤醒或{待旉到?/span>

3.        查看sleep的源代码Q?/span>Qt?/span>win下和*nix下的sleep函数?/span>

Windows下的sleep的代码ؓQ?/span>

void QThread::sleep(unsigned long secs)

{

    ::Sleep(secs * 1000);

}

sleep的单位ؓU?/span>

*nix?/span>sleep的代码ؓQ?/span>

void QThread::sleep(unsigned long secs)

{

    struct timeval tv;

    gettimeofday(&tv, 0);

    struct timespec ti;

    ti.tv_sec = tv.tv_sec + secs;

    ti.tv_nsec = (tv.tv_usec * 1000);

    thread_sleep(&ti);

}

 

static void thread_sleep(struct timespec *ti)

{

    pthread_mutex_t mtx;

    pthread_cond_t cnd;

 

    pthread_mutex_init(&mtx, 0);

    pthread_cond_init(&cnd, 0);

 

    pthread_mutex_lock(&mtx);

    (void) pthread_cond_timedwait(&cnd, &mtx, ti);

    pthread_mutex_unlock(&mtx);

 

    pthread_cond_destroy(&cnd);

    pthread_mutex_destroy(&mtx);

}

我们可以对这两个函数q行单的装Q从而达到真正的sleep的作用?/span>

 

---------------------

作者:tingsking18

来源Q?/span>CSDN

原文Q?/span>https://blog.csdn.net/tingsking18/article/details/5304254?utm_source=copy

版权声明Q本文ؓ博主原创文章Q{载请附上博文链接Q?/span>



zmj 2018-10-09 17:33 发表评论
]]>北京中通数字高夫公司 - սƵ2019|սع//www.pppqb.icu/zmj/archive/2018/09/14/215932.htmlzmjzmjFri, 14 Sep 2018 09:03:00 GMT//www.pppqb.icu/zmj/archive/2018/09/14/215932.html//www.pppqb.icu/zmj/comments/215932.html//www.pppqb.icu/zmj/archive/2018/09/14/215932.html#Feedback0//www.pppqb.icu/zmj/comments/commentRss/215932.html//www.pppqb.icu/zmj/services/trackbacks/215932.html
//www.digitgolf.com/news/golf/84.html
北京中通数字高夫以国安行仿真模拟实验室为技术依托,主要从事计算Z真Y件开发及相关工程的设计、实施和服务Q是国内最早研发、生产和销售模拟高夫pȝ的高U技公司及中国最大的高尔夫模拟器销售商?中通数字高夫也是EDH公司中国区合作伙_EDH全球领先的高夫雯产品FlightScope高尔夫雷达中国市场M理商?//www.digitgolf.com/
~辑摘要

         
中通数字高夫Q高夫模拟器与高尔夫雷达专业服务商

认识中通数字高夫认识中通数字高夫 

   认识中通数字高夫

     北京中通数字高夫以国安行仿真模拟实验室为技术依托,主要从事计算Z真Y件开发及相关工程的设计、实施和服务Q是国内最早研发、生产和销售模拟高夫pȝ的高U技公司及中国最大的高尔夫模拟器销售商?/p>

    Z北京中通数字高夫的多q模拟系l的开发实施经验,EDH公司与北京中通数字高夫在中国进行了q泛的合作,共同成立了北京数字化球场制作研发中心、Y件研发中心。EDH公司指定中通数字高夫公司为其全球领先的FlightScope高尔夫雷达品在中国市场的M理,全面负责FlightScope相关产品在中国的销售、安装及售后服务?nbsp;   

   

    产品介绍  

    一?nbsp;DigitGolf模拟?nbsp;

  弚w量技?DigitGolf室内模拟器的问世Q将室内高尔夫模拟器推向一个全新的发展阶段。特有的军用雯技术在高尔夫中模拟器中的运用,使DigitGolf成ؓ众多高尔夫爱好者争抢的热门产品?nbsp; 

    大的画面,不拉伸、不变ŞQ?3M大视角Q可全景览真实球场Q?nbsp;当您|n?3M的场景中Q发现球道ƈ没有变宽Q媄像依然精l流畅时Q您才能真正体会?D建模l制的画面究竟有多么奇!  

   DigitGolf是中国室内高夫行业发展最q猛的企业,成立以来我们一直致力于高尔夫模拟器的研发和刉,现如今,产品在全球销量始l处于第一。我们ؓ您提供不出戗畅打世界知名球场的高尔夫模拟器pȝQƈ有两U性能卓越的高夫雯产品供您选择Q可满您室内外的高夫需求?nbsp;

  产品特征 Q?/strong>

  全球唯一采用EDH军用雯技术,可进行弹道、侧旋、倒旋、挥杆等数据的精捕捉?/p>

  全球唯一量_և度达?9.9%的模拟器?nbsp; 

DigitGolf模拟?/span>

    DigitGolf 性能 

     1.一套模拟器Q可供多位球员同时练?nbsp;

     2. 多达36U比赛计分模? 

     3. 差点评分调整  最佳球位和最q距L?/p>

     4. 客户自定义打法(L选择球洞、次序和ơ数

     5. 旗杆位置多样选择

     6. 动力增强选择 

     7. h高度自定义选择 

     8. 果岭环境选择     

视频分析功能Q?/strong>DigitGolf最新的视频分析pȝQ设计用于与DigitGolf模拟器Y件相l合。具有录制挥杆动作视频的功能Q包括对视频q行划线、评注、录制CD、和上传C人网c?nbsp;     

   用于׃中心Q?/strong>室内高尔夫球׃中心q作成功的关键是吸引客户和保持客源。DigitGolf模拟器被证明Q每套模拟器都生了最高的收入Qƈ在本行业中具有最高的整体利用率,能帮助客户吸引顾客ƈ保持׃?nbsp;        

   动作分析pȝQ?/strong>可以支持多达4个可?nbsp;摄像机或M单火U数字视频摄像机?nbsp;  

   重心分析pȝQ提供精的w体重心Ud和^衡分?极大地改善教学、安装和学习q程?  

   数据分析Q?/strong>在线数据q踪软g可以让每位客户保有个人网,存储所有发监控器记录的数据?nbsp;   

 

   二?UnionGolf模拟?nbsp;

UnionGolf模拟?/span>

   横空Z·C?      

    l过10q的潜心研发和精雕细琢,中通数字高夫全新推出了革命性?#8212;——UnionGolf室内 模拟高尔夫。毫无疑问,在高夫模拟器领域中QUnionGolf高尔夫以其创造力和研发能力,处于?nbsp;业的最端。结合三l量化追t技术,在技术、科技、创新、销售和客户服务斚w均傲视群雄,?nbsp;领潮?nbsp;  

 ★中国最大的室内高尔夫供应商  

 ★量_ֺ?9.9%  

 ★全球领先?D引擎技? 

 ★可以直接量旋{的模拟器   

UnionGolf模拟?/span>

本质·真实性和׃?nbsp;

 UnionGolf在真实性与׃性方面积累了不可或缺的经验,我们不断完善真实性与׃性,q些都会影响您对模拟器的体验。这些可以媄响的因素包括Q可见的_度、画面的飘动感?  

 ★ 独有的距z最q和开球距Lq比赛Ş式是非常有诱惑力的?nbsp;  

★ 学校、酒店、会所、家庭均适用?nbsp; 

★ 引h注目的娱乐设施,可以吸引更多的客戗?nbsp;

★ 甚至在E季也能保持强势的应用?nbsp; 

★ Ȁ发兴的׃l验Q在M赛事上,都具有杰出的吸引力?/p>

★ 在赛事游戏中增加了娱乐性?nbsp;

★ 也可以与家庭影院l合?nbsp;   

  q求完美·室内模拟高尔?/strong>

  UnionGolf高尔夫推出第一台模拟器时就定下了宏伟目标,即重新定位模拟器Q时L客户服务作ؓ重要使命引领本行业的发展。在q些目标Ȁ׃QUGl增加研发投入,健全销售体p,q且不断新技术引入新产品Q不断提高客h务水qI保客户所使用的UnionGolf模拟器的先进性。UnionGolf模拟器之所以优,重点在于它如何让你ؓ之心醉?nbsp; 

3D多普h术(军用雯技术)3D多普h术(军用雯技术)

  技?#183;三维多普勒军用雷?/strong>

  UnionGolf采用EDH公司的三l多普勒跟踪雯技?采用军用雯技?。已l申请专利的相控阵跟t技术在讑֤中的使用Q将UnionGolf的Y件效果完的展现Q这意味着您将获得比Q何同cM品更加精准的量和跟t数据?nbsp;如果您希望找己高夫挥杆的分析数据,希望得到自己ȝ后的反馈Q那么,三维多普勒跟t雷达是您最好的选择?nbsp;专业的服务团队,我们拥有从事技术调试工作多q的工程团队Q最丰富的经验,最专业的技术ؓ您量w打造独属于您的模拟器?4时客服热线?8时上门服务Q我们做的不是品,而是事业...      


 三、FlightScope X1雯探测? 

FlightScope X1 FlightScope X1

   全球唯一采用军用雯技?3D多普? 的高夫雯品牌?/p>

   Flightscope X1 凭借优良的3D多普勒雷达技术,以每U?0000(?的雷达L频率Q精准有效地量您的每次完美挥杆数据?/p>

   全球唯一量_և度达?9.9%的立体测量A器?nbsp;

   全方位多点精准测量球速、杆速、倒旋、侧旋、落炏V总距R飞行高度等一pd挥杆数据?nbsp;十几q以来,在全球销量始l处于领先位|? 它可外接世界各种著名客户端YӞ让您不出户畅打全球著名球场. Flightscope X1 可与姿势分析、重力分析、重心分析、视频分析等pȝ完美l合?nbsp;  

  有效利用I间  

Flightscope X1,占用I间,用于室内监测Flightscope X1,占用I间,用于室内监测

  Flightscope X1雯安装部v于模拟器屏幕?0cm处,量范围qK、拆装简易方ѝ损耗极,无辐?nbsp;打球Ӟ球可以放|于通道垫的M位置Q其都可以进行挥杆的_և量Q准度可达?9.9%?nbsp; 

Flightscope X1W三Ҏ{扫描监结果报?/strong>  

    通过q接扫描工具QFlightscope X1可以自动识别球杆型号,无需用户手动输入; 

    在球h过E中QFlightscope X1可以快读阅读生厂家在器材设备上标注的参敎ͼ

   X1在测量之后会把所监测到的数据自动生成一个监结果分析报告,它包含X1监测到的所有数据,如球杆材质、球属性、飞行、跟t图像、挥杆数据及其它U学试l果{等。这些数据方便球友了解自己所使用的球杆、球的性能及自qȝ情况。 

    √. Flightscope X1集合诸多优势于一体,除了监测ȝ、挥杆外Q它能够_և地分析各U木杆、铁杆、挖h及推杆的性能Q给球友提供专业的器材配|徏议; 

  √. 凭借高品质?D跟踪雯技术,Flightscope X1为球友带来精准的监测性能和数据可信度Qƈ且极具hg势; 

   _և监测Q不受约?/strong>

   Flightscope X1相控阵雷达传感器整个的监控过E由늣波来完成Q是世界上最_的球q弹道测量A。Flightscope X1q用扩展排列量pȝQ能够精地量M条g下Q何材质的高尔夫球的各Ҏ据指标,而不受以下各因素的限制Q? 

 ·球的cd、杆的类?nbsp;Q包括用Q何球与Q何球杆) 

 ·转速比?nbsp;Q杆速与球速的比?nbsp;也称Q甜蜜点Q? 

 ·h高度 Q安装场地的所处的位置的v拔高度)  

 ·适度的天气条?nbsp;Q不ZQ何天气状늭不媄响打球)   

 SIM传感器可量的数据:

   公司的SIM传感器应用专业的相控阵雷达技术,以每U钟30000周期的惊人速度来测量运动中球杆与球的各Ҏ据? 

 SIM传感器通过出厂时的一ơ性校对,在用的q程中几乎不需要再q行M的调试,q且极少出现故障Q即使出现故障,也可在短短的15分钟内排除? 

  传感器系l的升更新可直接通过邮g形式Q也可在开机状态下自动下蝲?  

Flightscope X1优势

1、电L监控Q精测量不受外界媄响:X1采用相控阵雷达传感器Q整个监控过E由늣波来完成Q是世界上最_的球q弹道测量A。它q用扩展排列量pȝ能够_地测量Q何条件下、Q何材质高夫球的各项数据指标Q而不受球的类型、{速比率、v拔高度、天气条件等因素的限制? 

2、全轨迹量Q精准度高达99% Q一些感应器只能同时量几个Ҏ一些点Q从局部的Ҏ球道轨q,_度不高。相控阵雯传感器测量成千上万的? 完成Ҏ个轨q的量Q在球的飞行q程中不断测量垂直角度、水q度和球的速度Q所以弹道的量_度可?9%?    

3、体U小、拆装方便:我们的传感器体积_yQ仅有普通辞大,其位于大屏幕的后部,拆装易方ѝ?  

 4、调试简单,升便捷Q?/strong>传感器通过出厂时的一ơ性校对,在用的q程中几乎不需要再q行M的调试,q且极少出现故障Q即使出现故障,也可在短短的15分钟内排除。另外,传感器系l的升、更新可直接通过邮g形式Q也可通过自动下蝲的方式?nbsp;

Flightscope X2Flightscope X2Q便计,室内、户外都可以使用

    










  三、FlightScopeX2

    FlightScopeX2雯探测仪是中通高夫从EDH公司引进的全球最先进的高夫雯Q这是世界上目前唯一使用军用雯技术的高尔夫雷达品。它可以实现无线q接Q摆׃必须与台式电脑连接的弊端。与iphone、ipad、ipod、android手机{便备连接,让监更单、便捗X2可以满室内球的监测Q也可以在户外用,q年来国外很多职业球员更青睐X2Q因为它可以在户外随旉地地实现高尔夫球的追t及挥杆监测?/span> X2可以_ևq踪球的飞行整个轨迹Qƈ准确量球倒旋、侧旋、距R杆面角度、挥杆速度、杆头速度 、水q球杆\?nbsp;、垂直球杆\径、挥杆\Uѝ推杆加速度 、杆面高度(d面) 、脚或脚后跟打M|等多种数据。在球具评上,它能q速识别球杆材质,分析挥杆数据Q是高尔夫教l、球友、球具工坊的好帮手?/p>

     FlightScope推出C代雷达品X2Q?nbsp;您只要通过iPhone或者iPadp观看 和测量自q挥杆、球速以及杆速等?nbsp;敎ͼ摆脱与有U电脑连接才能用的~?nbsp;炏V更yQ更方便?br />便携式雷达X2带l您更进一步的_և 量Q?/span>

    FlightScopeX2 优势

   1、电动水q 
   2?商业可充늚镍氢甉|  

   3?廉?0时甉|寿命 

   4 、无U网路(Wi-Fi无线Q连?nbsp; 

   5 、蓝牙网l连?nbsp; 

   6?可连接电视等昄?nbsp;

   7 、兼容Android安卓pȝ手机、iPad、iPhone{便?nbsp;

   三维多普勒跟t雷辑ַ作原?/strong>
 ◆ 振荡?nbsp;生成微L信号 天线 辐射信号  

 ◆ q动物体 q扰信号 反映能量 q动转变

 ◆ 相控阵天U?nbsp;反馈信?nbsp;比较怽  

  探测技术原?/strong>
   FlightScope?D球跟t技术,成功的秘诀在于已经甌专利的相控阵跟踪技术在讑֤中的使用。FlightScope 3Dq踪装置主要在于它的雯技术(采用军用雯技术)?q意味着您将获得比Q何同cM品更加精准的球测量和跟踪数据?如果您希望找己高夫挥杆的分析数据,希望得到自己ȝ后的反馈Q那么,三维多普勒跟t雷达是您最好的选择?l合性击球监视器

 FlightScope X2 不仅是击球监器QX2代表了击球监视器产品cȝ重大H破Q它集多U特性于一w,是非常吸引h的品?·作ؓ一U室内击球监器QX2提供了关于球杆和球的q泛而且准确的数据?/p>

 ·X2完全是一U?D装置Q比2Dpȝ的功能更强?/p>

 ·在户外,X2作ؓ一U长距离弚w跟踪装置Q采用的是许多OEM和打高尔夫组l用的相矩阵雷达技术?/p>

 ·但是成本相对较低?·X2无线|\QWi-Fi无线Q连接?nbsp;

 ·X2兼容Android安卓pȝ手机、iPad、iPhone{便?

X2可监多Ҏ?/span>


   X2可以直接量Q?/strong>
·球的周{?nbsp;·球的旋{ ·球的上升 ·球的垂直发球角度 ·球的高度 ·球的程 ·杆头速度 ·水^球杆路径 ·垂直球杆路径·挥杆路线 ·杆面扣角 ·推杆速度 ·推杆加速度 ·杆面高度Q离地面Q?nbsp;·脚趾或脚后跟打击位置{多U数据?/span>

X2可以_և的测量出您的挥杆杆速、球速采用电感应雷达技术,可以准确鉴别高尔夫球的倒旋、侧?/span>。它能够在几U钟内进行设定,q且在更短的旉内进行校准。对多次U录l果q行q_Q就是高夫球者用某特定推杆挥杆的结果。这U品的灉|度可以指导者或者球杆调试h员确定杆面扣角或者推杆头方向和加速度每分钟的变化。在l习模式下,可以量出您的挥杆加速度Q从而进行校准? 

X2_և监测Q让l球更有?/span>


   用户认知
   2010q美国PGAU季博览会最x产品 

   2011q美国PGA博览会官Ҏ定高夫q踪产品 

   圆石滩高夫学院唯一指定的高夫q踪用品 

   圣\易斯Golf Discount店面指定用品 

  2012qBMW PGA锦标赛官方用?nbsp;

   Titleist大多数店面都设有Z界最好球员和高尔夫爱好者提供的高尔夫帮?#8212;—X2?nbsp;  


   讉K中通数字高夫公司|站Q//golf.digitgolf.com/     

   x中通数字高公司微博,x了解行业动?/strong>Q//weibo.com/digitgolf     

   阅读中通数字高夫新浪博客Q?/strong>//blog.sina.com.cn/u/2659198553  

   联系中通数字高夫公司Q?/strong>   

    销售电话:010-6267-0916   010-6267-0523   ?nbsp;服:010-6267-0663  

    |?nbsp;址Q//golf.digitgolf.com/   

    ?nbsp;:winni@digitgolf.com  



zmj 2018-09-14 17:03 发表评论
]]>
计算机图形学发展前景怎么P现在研究领域一般都分哪些? - սƵ2019|սع//www.pppqb.icu/zmj/archive/2018/09/13/215923.htmlzmjzmjThu, 13 Sep 2018 00:56:00 GMT//www.pppqb.icu/zmj/archive/2018/09/13/215923.html//www.pppqb.icu/zmj/comments/215923.html//www.pppqb.icu/zmj/archive/2018/09/13/215923.html#Feedback0//www.pppqb.icu/zmj/comments/commentRss/215923.html//www.pppqb.icu/zmj/services/trackbacks/215923.html阅读全文

zmj 2018-09-13 08:56 发表评论
]]>
中国古代数学与西Ҏ学有什么不同? - սƵ2019|սع//www.pppqb.icu/zmj/archive/2018/06/08/215712.htmlzmjzmjFri, 08 Jun 2018 07:39:00 GMT//www.pppqb.icu/zmj/archive/2018/06/08/215712.html//www.pppqb.icu/zmj/comments/215712.html//www.pppqb.icu/zmj/archive/2018/06/08/215712.html#Feedback0//www.pppqb.icu/zmj/comments/commentRss/215712.html//www.pppqb.icu/zmj/services/trackbacks/215712.html   中国古代对于世界的认识是循环闭合的体p,千变万化的现象背后存在着某种联系Q它们相互依赖;而西方对于世界的认识是基于直铑֍向的因果Q从一般的抽象化的概念与生的衍生来解释特D的现象。这两种思考导致了Ҏ性的区别Q那是中国古代注重对于事物的理解,利用一个现象去解释另一个现象,发掘内在兌Q而西Ҏ注重于逻辑Q徏立一般理论将所有的现象l一于理Z下。进而我们能理解Qؓ何西方可以诞生近代公理化Q高度抽象化的数学体p,而中国数学则不成体系Q以原始形态呈现在数学安前?span lang="EN-US"> 

  Z以上理解Q我们不隄解,虽然中西Ҏ学的h非常cMQ都是基于对于生zd践中遇到的问题进行归U_理性的处理Q然而中国数学的发展一直在延箋前h的研I传l,即以直观现象或实例ؓ基础Qƈ加以q用?span lang="EN-US"> 

  需要指出的是,西方q现代数学发展(?span lang="EN-US" style="color: #993366; font-size: 18pt;">16世纪开始)Q与西方CU学发展的传l,q是直接承从古希腊时期开始,由几何原本奠定下的公理化研究Ҏ。事实上当我们考察无论是近代数学还是物理学的发展之初,都基于对l验事实的依赖和大胆的猜与惌。从q一点上Q中西方差异在于Q西方率先用一般的Q抽象的方式来解释特D问题,坚信世界所有的现象可以被统一在数中。不仅如此,他们善于从复杂的现象中归U_“优美的性质”Qƈ且坚信优,单的理论是世界的l极解释。所?span lang="EN-US" style="color: #993366; font-size: 18pt;">16世纪初,数学与科学的蓬勃发展中,无不透露出对于这U朴素哲学观的诏彅R比如开普勒Q早期的天文学,数学的探索者,在其重要著作《世界的和谐》中指出Q将天文学与音乐完美l合在一L可能性,q且被看作是世界的和谐。而这U朴素认识论正是西方q现代科学的开端?span lang="EN-US"> 

  W二个重要问题是数学体系的徏立和推演。必L认的一ҎQ在体系的徏立和推演上,中西Ҏ学早早地分道扬镳。以《九章算术》ؓ例,从内容上Q中国古代数学问题的核心在于对实际问题的解释和再利用Q故而卷分类?#8220;方田”Q?#8220;_米”Q?#8220;衰分”“广”Q?#8220;商功”{等实际生活场景q行分类。但是从数学内容上,九章术不仅处理了大量复杂问题,而且包含了重要的哲学思想Q如极限Q分Ԍl合{)。最为流传的例子?#8220;暅原理”Q即判断两个物体的体U相同,可用“q势既同Q则U不容异” q一原则q行判断Qƈ且利用这个原理求?#8220;牟合方盖”体积Q所?#8220;牟合方盖”是指相同的两个圆柱正交围出的立体形)而这个立体Ş的体U求解是无法用初{数学解冻I严格来说应用微U分才能完全解决。而从其论qCQ我们能看到朴素的积分思想Q也展现了古代数学家杰出的数学直觉。同Ӟ在研I的领域上有极大的弹性,从初{代敎ͼ初等数论到初{几何学Q基于现代数学的观点Q中的各个问题都有涉猎,q且l出了认识解决问题的重要思考。如卷八方程的开问题,卛_用方E组思想解决问题Q而以西方数学观点来看Q所利用的正是高斯消元法? 再如qؓ乐道的中国剩余定理,以及勾股定理Q涉及到了初{数学中大量重要核心命题。但是,从推gQ我们所l出的叙q性解释ؓ主,而ƈ非推导和计算。事实上Q在《九章算术》中Q只有遇到实际例子和数公式上会q行计算Q而原理性内容作为理解出现? 在这U情况下Q数学的发展仅仅依靠极少数数学家不加证明的洞察给步,对于体系的发展本w是致命的?span lang="EN-US"> 

  而在西方Q数学的发展在初期也是大胆而富有想象力的,不过他们q没有停留于理解Q而是用相对细致的逻辑铄l成数学语言表达出来。数学的zd最早是在艺术家的手上复z,无论是绘画(透视L对射影几何的影响Q,音乐理论发展Q激发了Z的思维?span lang="EN-US" style="color: #993366; font-size: 18pt;">16,17世纪数学家的工作时常是不严}Q甚至也没有M数学公理基础的保证,如欧拉关于很多无IL数的处理Q都是基于一些朴素的认识Q从形式上获得灵感便不加证明的用。这个阶D늚数学Q思想上的推动力其实与中国古代数学家一P依赖于数学家的直觉进行研I。但是,之所以西Ҏ学在l历怼时期之后有爆炸性发展,原因有二。其一Q用抽象符号对数学q行描述Q得数学从实际问题中解攑և来,可以自由地组合,用简单方式刻d杂事物,发挥惌力,不再受制于具象。其二,相对中国古代数学Q西Ҏ学家更重视逻辑铄建立Q所以从因到果的q程更细_Z后的研究打下坚实铺垫。而我们|z乐道的数学公理化与抽象化的工作都不是在早期完成Q而是?span lang="EN-US" style="color: #993366; font-size: 18pt;">18世纪开始被来多数学安视。分析学的诞生事实上是数学家对于精l逻辑铄探烦Qؓ微积分打下坚实理论基Q同时揭CZ大量昄命题正确性的由来Q得h们对微积分体p认识更为深刅R与此同时物理学的蓬勃发展推动了大量计算技术的发展Q将微积分应用至实际研究中去变成了一U共识。进?span lang="EN-US" style="color: #993366; font-size: 18pt;">19世纪后,一斚w微积分席卷了几乎原来所有的初等数学分支Q另一斚wq代代数学的发展提供了抽象工P如群论,用以解释方程解而诞生的理论Q所以接下来发展的数学分支变成了论Q复变函数论Q几何学也焕发新的光芒。进?span lang="EN-US" style="color: #993366; font-size: 18pt;">20世纪后,无论是公理化q是抽象化的工作都达C峰Q数学家意识到各个数学分支间是有紧密联系的,拓扑学,集合论,抽象代数的发展将零碎的研I和数学分支|罗在相互联pȝQ统一的架构中Q真正成Z套体pR? 从这一点上Q中国古代数学传l是不可能演化出q样的体pȝQ其原因不仅仅在于认识论的不同,而是一个更深刻的问题?span lang="EN-US"> 

  在《世界的重新创造》一文中提出Q由于中国文化ƈ未有真正的文化移植而导致中国科学的发展注定是不够好的论点,我是完全支持的。其一Q截然不同的文化交流和碰撞会l两个文明都带来新的启示。其二,西方的文字系l更适合抽象性思维Q而汉语由于其强大的组合能力和良好的直观性导致ƈ未生新的符Ll对数学q行描述Q故而也很难q行复杂抽象的计与推导。但是笔者认为,关键问题在于Qؓ何中国古代数学与西方数学体系Z没有发生撞。从历史时期上来_中国数学发展和西Ҏ学发展存在一个大的时间差。中国数学的研究发源早,公元三世U就已经有杰出的数学成果Q九章算术最早成书亦是此Ӟ由刘徽编U成书)。而古希腊数学虽然亦有杰出成就Q但是明昑֪响覆盖的范围q远不到东亚Q最多至两河域Q再传入印度境内Q而那已经时至公元八世U。唐宋数学高度发达,q且九章术逐渐演变Z亚的最重要的数学教U书。而在同时期的Ƨ洲却在l历中世U,以教会对世界解释权的垄断Z。一直到十三十四世纪Ӟl由印度Q阿拉伯地区数学原c传回西Ƨ社会,西方数学才开始发展,然而此时的中国是由蒙古人所l治的时期,数学发展明显受阻。进入十五世U后Q数学在Ƨ洲开始复_q入蓬勃发展期,但中国数学却仍不温不火,q且来具有偏向性,在这一时期军_了中西方数学的差距。纵观来看,中西Ҏ学发展的断期对于双方的交流有很强的ȝQ没能在同一时期站在大致怼的高度上形成交流? 从政M来说Q中国古代数学的存在意义实则是ؓ政治服务Q所以研I注重实用性,偏向性,对于实际问题的解军_有一套,但是对徏立系l性理论没有太大的热情。相较于西方Ҏ学Ş而上的认识,中国的数?#8220;合ؓ时而用”Q是可以“货与帝王?#8221;的才能,如果没有政治支持Q那么数学就没有发展土壤。也正因如此Q中国的数学家也之又少Q数学文化的传播也ƈ不是随心所ƌӀ重要的Q高U的计算技巧是不可能流入民_自然也不可能催生中国整体上的数学发展。同Ӟ即在一部分重要的文献如Q老子Q周易等先后传入西方世界Q然而东方的数学智慧却未曑ֈƧ洲传播。而从研究方式和工具上Q中国数学重视计,重视实际l果。比如历法上的成,所依托的正是极高的计算技巧。而这些技巧所依托的符Ll,相较于Q何古代数学文明都是先q的。因为简易,而且是组合式的,再通过归纳Q简写(比如百,千,万,亿的概念产生Q再比如百万Q千万,亿万q样的组合概늚产生Q,我们可以方便直观的表C极多数字,q对计算技巧的研究很有帮助。所以即使西方的W号体系Q数字体pM入中国,但是在计上的优性必然导致这些不能取代千q沉淀的文字?span lang="EN-US"> 

  而今有很多对比中西方U学发展的探讨,很多的目的在于给中国古代U技U学正名Q提振民族自信心Q这一Ҏ可厚非,但是我们应本着客观公正的态度探讨。如果将核心观点始终立于两套文化系l的不同上,q而找C个^{的q点,W者认为大可不必。无论是以前提出?#8220;倘若假以时日中国也能发展到西方同L度的U学”Q还是现在提出的“中国的科学广义上是格致学Q生命博物学”Q其实都是在遉Kp地谈问题。且不论西方列强以武力手D|开中国的大门是否是D中国本土U学的原因,q是在双方互不q涉的前提下Q科学的基础学科数学的发展速度׃在一个层ơ上。中国的数学发展是篏U式的,U性的Q是Ex发展的,但是西方数学的发展是爆炸式的Q好比指数函敎ͼ只会发展的越来越快,q就是巨大差距。再有从q义U学角度上切入的观点Q基本是上升臛_学层面的认识Q不能仅仅停留于探讨不同的思\和想法就长舒一口气Q认为找Cq等可以安心一些。对于现在的学习U学Q研I科学的中国人来_如何汲取古代智慧是非帔R要的。这l不是要抛弃U学的方法论Q而是用不同于西方机械唯心论的角度认识世界。值得借鉴的一案便是数学家吴文俊所发展?#8220;吴方?#8221;。吴文俊教授从古代算法思想入手Q通过构徏E序证明了大量初{几何学Q射影几何学内容Q取得了非凡的成果。而在U学分支庞杂林立的现代,大体量的U学pȝ其实反而成了限制h们l探索的ȝQ如何从中国古代的整体观来认识科学,是一个很可能成功Q也极ؓ重要的课题。某U程度上Q我们应该庆q怸国的哲学思想与西方ƈ立,或许带l世界最重要的启C?/span>




zmj 2018-06-08 15:39 发表评论
]]>
极简西方数学?/title><link>//www.pppqb.icu/zmj/archive/2018/06/04/215700.html</link><dc:creator>zmj</dc:creator><author>zmj</author><pubDate>Mon, 04 Jun 2018 06:20:00 GMT</pubDate><guid>//www.pppqb.icu/zmj/archive/2018/06/04/215700.html</guid><wfw:comment>//www.pppqb.icu/zmj/comments/215700.html</wfw:comment><comments>//www.pppqb.icu/zmj/archive/2018/06/04/215700.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>//www.pppqb.icu/zmj/comments/commentRss/215700.html</wfw:commentRss><trackback:ping>//www.pppqb.icu/zmj/services/trackbacks/215700.html</trackback:ping><description><![CDATA[<div class="dpun">https://www.jianshu.com/p/f439a3542256<br /><br /><h1 class="dpun">极简西方数学?/h1><div data-note-content="" style="box-sizing: border-box; color: #2f2f2f; font-size: 16px; line-height: 1.7; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; background-color: #ffffff; word-break: break-word !important;"><div style="box-sizing: border-box;"><div style="box-sizing: border-box; padding-bottom: 25px; width: 700px; margin-left: -40px;"><div style="box-sizing: border-box; z-index: 100; position: relative; background-color: transparent; transition: background-color 0.1s linear; margin: 0px auto; max-width: 600px; max-height: 440px;"><div style="box-sizing: border-box; z-index: 50; padding-bottom: 439.969px;"></div><div data-width="600" data-height="440" style="box-sizing: border-box; position: absolute; top: 0px; left: 0px; width: 600px; height: 439.969px; overflow: hidden;"><img data-original-src="//upload-images.jianshu.io/upload_images/3159686-3cdfaeab30184427.jpg" src="//upload-images.jianshu.io/upload_images/3159686-3cdfaeab30184427.jpg" data-original-width="600" data-original-height="440" data-original-format="image/jpeg" data-original-filesize="111293" style="box-sizing: border-box; border: 0px; vertical-align: middle; max-width: 100%; height: auto; cursor: zoom-in; transition: all 0.15s linear; display: block; z-index: 100; filter: blur(0px); opacity: 1;" alt="" /></div></div></div><p style="box-sizing: border-box; margin: 0px 0px 25px; word-break: break-word !important;"><br style="box-sizing: border-box;" /></p><p style="box-sizing: border-box; margin: 0px 0px 25px; word-break: break-word !important;">  Ҏ考古研究Q我们已知最早的文明Q两x明,已经让初{数学在他们的生zM起到了不的作用。巴比u人的天文知识渊博而精,例如关于太阳月,他们定出的g真实g间只差一U。他们不光熟悉十q制Q在计算大数的时候还补充了一U以六十为基数的q位制。一块距今约4300q的泥板表明Q巴比u人那时已l知道如何度量矩形、特D三角Ş的面U,以及正多面体的体U?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; word-break: break-word !important;">  在外来者当中,有些人把苏美的影响和知识带C埃及Q在q里Q文明也辑ֈ了很高的成就。因为纸草书的存在,我们对埃及的了解比对巴比伦的要多。埃及hҎ学有着q泛的A献,他们完成了基本的数四则q算Qƈ把它们推q到分数上,q且有了求近似^Ҏ的方法。他们已l有了算数敎ͼ几何U数Q立体图形求U,初等三角函数以及二次方程的知识。然而,无论是巴比u是埃及hQ都没有对自然现象进行耐心仔细的考察Q拥有概括推理的能力Q因此这些古老的文明中ƈ没有产生真正意义上的U学?br style="box-sizing: border-box;" /></p><p style="box-sizing: border-box; margin: 0px 0px 25px; word-break: break-word !important;"></p><div style="box-sizing: border-box; padding-bottom: 25px; width: 700px; margin-left: -40px;"><div style="box-sizing: border-box; z-index: 100; position: relative; background-color: transparent; transition: background-color 0.1s linear; margin: 0px auto; max-width: 228px; max-height: 236px;"><div style="box-sizing: border-box; z-index: 50; padding-bottom: 236px;"></div><div data-width="228" data-height="236" style="box-sizing: border-box; position: absolute; top: 0px; left: 0px; width: 228px; height: 236px; overflow: hidden;"><img data-original-src="//upload-images.jianshu.io/upload_images/3159686-0ec2e937259b5813.jpg" src="//upload-images.jianshu.io/upload_images/3159686-0ec2e937259b5813.jpg" data-original-width="228" data-original-height="236" data-original-format="image/jpeg" data-original-filesize="27836" style="box-sizing: border-box; border: 0px; vertical-align: middle; max-width: 100%; height: auto; cursor: zoom-in; transition: all 0.15s linear; display: block; z-index: 100; filter: blur(0px); opacity: 1;" alt="" /></div></div></div><p style="box-sizing: border-box; margin: 0px 0px 25px; word-break: break-word !important;"><br style="box-sizing: border-box;" /></p><p style="box-sizing: border-box; margin: 0px 0px 25px; word-break: break-word !important;">  虽然希腊Z古代文化中承了大量资料Q不q几乎所有h都承认,qL艑֥g岸是今天一切科学的h。巴比u人和埃及Z未想到过Z知识本n而去L知识的行为,而正是这U概念促使了“希腊的科学奇q?#8221;的发生,q之中最惊h的进步便发生在数学上Qƈ为其以后的发展奠定了怹的基。以泰勒斯ؓ首的艑֥g学派几何学{知识从埃及和巴比u带回希腊Qƈ提出了很多命题和基本原理。公元前6世纪末,׃波斯的入侵,Z向西斚w难Q意大利和西襉K岛变成了新的学术中心。徏立于意大利南部的毕达哥拉斯学z把数学研究变成了一U自由教育的形式Q整个数学变得更抽象Q更加脱ȝ生z需要了。毕辑֓拉斯学派Ҏ学发展生了巨大影响Q历时达两个世纪之久?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; word-break: break-word !important;">  波斯于公元前480q被希腊联军击|后,雅典成ؓ了世界经和文化中心。这时出C旨在教育国民Q{播文化的哲hz,他们的思考对作图{几何问题的发展影响很大Q其中就有芝诺那些关于无限的著名悖论。L斯游牧民族的威胁消除后,雅典与斯巴达之间的同盟就被猜忌与不和取代了。伯|奔撒战争一直gl到公元?04q_那一q雅典被q投降。这D|期是苏格拉底和柏拉图的时代。与老师苏格拉底醉心于国家和伦理不同Q柏拉图在游历期间对数学产生了浓厚的兴趣。因此对后世影响p的柏拉图学园的哲学也成了数学的哲学。伟大的学者,哲学家亚里士多d也是柏拉囑֭园的学生Q他让h们明白了公理Q公讑֒定义之间的区别,他的著作包含很多重要的定理。亚里士多d留下的大量著作,直接l治了后来的“复兴时期”的所有学_即那些错误的力学原理一直持l到16世纪?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; word-break: break-word !important;"></p><div style="box-sizing: border-box; padding-bottom: 25px; width: 700px; margin-left: -40px;"><div style="box-sizing: border-box; z-index: 100; position: relative; background-color: transparent; transition: background-color 0.1s linear; margin: 0px auto; max-width: 600px; max-height: 554px;"><div style="box-sizing: border-box; z-index: 50; padding-bottom: 553.969px;"></div><div data-width="600" data-height="554" style="box-sizing: border-box; position: absolute; top: 0px; left: 0px; width: 600px; height: 553.969px; overflow: hidden;"><img data-original-src="//upload-images.jianshu.io/upload_images/3159686-273d4df72a48fabe.jpg" src="//upload-images.jianshu.io/upload_images/3159686-273d4df72a48fabe.jpg" data-original-width="600" data-original-height="554" data-original-format="image/jpeg" data-original-filesize="107068" style="box-sizing: border-box; border: 0px; vertical-align: middle; max-width: 100%; height: auto; cursor: zoom-in; transition: all 0.15s linear; display: block; z-index: 100; filter: blur(0px); opacity: 1;" alt="" /></div></div></div><p style="box-sizing: border-box; margin: 0px 0px 25px; word-break: break-word !important;"><br style="box-sizing: border-box;" /></p><p style="box-sizing: border-box; margin: 0px 0px 25px; word-break: break-word !important;">  马其于公元?38q彻底击败雅典后Q雅典城再也没能复兴h。两q后Q马光的新国王亚历山大大帝开始着手征服世界,建立了巨大而短暂的帝国。公元前332q_他在罗河畔建立了亚历山大城。这座城市后来的l治者托勒密与亚历山大大帝一样都是亚里士多d的学生,亚历山大城很快成Z新的l济与文化中心。从那以后,亚历山大q种学术中心的地位gl了千年Q直到公?41q遭到阿拉伯人的z劫?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; word-break: break-word !important;">  亚历山大城的学者中Q有三个人决定了此后数百q数学的q程Q欧几里得,阿基c_d与阿波罗奥斯。于公元?20q由Ƨ几里得~写的《几何原本》是Ƨ式几何的奠Z作。欧几里得用了公理化的ҎQ这一Ҏ后来成了建立M知识体系的典范,在两千年间被奉ؓ必须遵守的严密思维的范例。阿基米徯UCؓ古代最伟大的数学家。他的发现涉猎极q,如给多求几何囑Ş重心Q包括由一抛物U和其网q弦线所围成囑Ş的重心的ҎQ还有采用不断分割法求椭球体、旋转抛物体{的体积Q这U方法已hU分计算的雏形。阿波罗奥斯是天才的几何学Ӟ著有《圆锥曲Uѝ一书,它将圆锥曲线的性质|罗D尽Q几乎后h没有插的余地?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; word-break: break-word !important;"></p><div style="box-sizing: border-box; padding-bottom: 25px; width: 700px; margin-left: -40px;"><div style="box-sizing: border-box; z-index: 100; position: relative; background-color: transparent; transition: background-color 0.1s linear; margin: 0px auto; max-width: 600px; max-height: 450px;"><div style="box-sizing: border-box; z-index: 50; padding-bottom: 450px;"></div><div data-width="600" data-height="450" style="box-sizing: border-box; position: absolute; top: 0px; left: 0px; width: 600px; height: 450px; overflow: hidden;"><img data-original-src="//upload-images.jianshu.io/upload_images/3159686-976a7932566c2ee4.jpg" src="//upload-images.jianshu.io/upload_images/3159686-976a7932566c2ee4.jpg" data-original-width="600" data-original-height="450" data-original-format="image/jpeg" data-original-filesize="64098" style="box-sizing: border-box; border: 0px; vertical-align: middle; max-width: 100%; height: auto; cursor: zoom-in; transition: all 0.15s linear; display: block; z-index: 100; filter: blur(0px); opacity: 1;" alt="" /></div></div></div><p style="box-sizing: border-box; margin: 0px 0px 25px; word-break: break-word !important;"><br style="box-sizing: border-box;" /></p><p style="box-sizing: border-box; margin: 0px 0px 25px; word-break: break-word !important;">  公元元年以后Q虽然在亚历山大的数学研I还在l着Q但Z对于q门学科的兴在逐渐减弱。希腊科学的黄金时代正在消褪Q取而代之的是极端实际与不关心智慧追求的|马文化Q随后则是长达一千年的中世纪。这是黑暗的时代Q希腊先哲们的荣光似乎远Mq块土地Q无论是数学Q还是其他思想Q大都处于停滞乃臌落状态。然而,天翻地覆的巨变正在缓~酝酿着Q而最l带来的Q将是一场彻底的光明与复兴?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; word-break: break-word !important;"></p><div style="box-sizing: border-box; padding-bottom: 25px; width: 700px; margin-left: -40px;"><div style="box-sizing: border-box; z-index: 100; position: relative; background-color: transparent; transition: background-color 0.1s linear; margin: 0px auto; max-width: 600px; max-height: 388px;"><div style="box-sizing: border-box; z-index: 50; padding-bottom: 388.016px;"></div><div data-width="600" data-height="388" style="box-sizing: border-box; position: absolute; top: 0px; left: 0px; width: 600px; height: 388px; overflow: hidden;"><img data-original-src="//upload-images.jianshu.io/upload_images/3159686-8d7143451c2db9fd.jpg" src="//upload-images.jianshu.io/upload_images/3159686-8d7143451c2db9fd.jpg" data-original-width="600" data-original-height="388" data-original-format="image/jpeg" data-original-filesize="54272" style="box-sizing: border-box; border: 0px; vertical-align: middle; max-width: 100%; height: auto; cursor: zoom-in; transition: all 0.15s linear; display: block; z-index: 100; filter: blur(0px); opacity: 1;" alt="" /></div></div></div><p style="box-sizing: border-box; margin: 0px 0px 25px; word-break: break-word !important;"><br style="box-sizing: border-box;" /></p><p style="box-sizing: border-box; margin: 0px 0px 25px; word-break: break-word !important;">  虽然文艺复兴被普遍认为是“人类从来没有l历q的最伟大的、进步的变革”Q不q对于数学而言Q智慧的火焰在黑暗时期也在不停地涌现Q反抗着。东方的拜占庭帝国一直维持着一个学术背景,保存了不希腊学术著作。阿拉伯人崛起后Q很快从东西方的合流中发展出了高度的文化Q希腊文化也由此保留。基督教征服西班牙后Q阿拉伯文化被西Ƨ所利用Q大量希腊著作被译ؓ拉丁文。中国的指南针传到西方后Q提高航h术的强烈需要极大地影响了天文学和数学两门基U学。不q中世纪的h们过于尊敬亚里士多d的权威地位,以至于出CUa解释历史文献的学问。这与自然科学的理念背道而驰Q在q样的气氛里Q数学只能勉强维持下来?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; word-break: break-word !important;"></p><div style="box-sizing: border-box; padding-bottom: 25px; width: 700px; margin-left: -40px;"><div style="box-sizing: border-box; z-index: 100; position: relative; background-color: transparent; transition: background-color 0.1s linear; margin: 0px auto; max-width: 350px; max-height: 334px;"><div style="box-sizing: border-box; z-index: 50; padding-bottom: 334px;"></div><div data-width="350" data-height="334" style="box-sizing: border-box; position: absolute; top: 0px; left: 0px; width: 350px; height: 334px; overflow: hidden;"><img data-original-src="//upload-images.jianshu.io/upload_images/3159686-8a17e964c219baa5.jpg" src="//upload-images.jianshu.io/upload_images/3159686-8a17e964c219baa5.jpg" data-original-width="350" data-original-height="334" data-original-format="image/jpeg" data-original-filesize="48949" style="box-sizing: border-box; border: 0px; vertical-align: middle; max-width: 100%; height: auto; cursor: zoom-in; transition: all 0.15s linear; display: block; z-index: 100; filter: blur(0px); opacity: 1;" alt="" /></div></div></div><p style="box-sizing: border-box; margin: 0px 0px 25px; word-break: break-word !important;"><br style="box-sizing: border-box;" /></p><p style="box-sizing: border-box; margin: 0px 0px 25px; word-break: break-word !important;">  1453q_君士坦丁堡被土耛_人攻陗承了|马和希腊,lg千年的拜占庭帝国覆灭。许多学者带着著作来到意大利避难,受到了美W奇家族的欢q。西方终于能够直接看到希腊经典著作的原文Q而整个西方世界也揭开了那个最有名的繁盛时期?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; word-break: break-word !important;">  数学在这个全面复兴的局面中没有落后Q不久它p得了自从希腊文化衰落以来从未有过的领导地位。以前一直被忽视的算数开始兴P三次和四ơ方E的解已l得出,负数甚至虚数获得了应有的CQ三角学开始作Z门独立学U出玎ͼ而属于物理学范畴却对本文及其重要的一个事实是Q沉寂了18个世U的力学Q终于开始吸引h们的注意了。文艺复兴始于当时最强盛的意大利和d国,汉萨联盟仍然控制着北方的N易,而佛|u萨和威尼斯正处于J荣昌盛的顶峰。法国的重要性直?6世纪末才表现出来Qƈ牢牢占据领导C达一个世U之久?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; word-break: break-word !important;"></p><div style="box-sizing: border-box; padding-bottom: 25px; width: 700px; margin-left: -40px;"><div style="box-sizing: border-box; z-index: 100; position: relative; background-color: transparent; transition: background-color 0.1s linear; margin: 0px auto; max-width: 600px; max-height: 291px;"><div style="box-sizing: border-box; z-index: 50; padding-bottom: 291px;"></div><div data-width="600" data-height="291" style="box-sizing: border-box; position: absolute; top: 0px; left: 0px; width: 600px; height: 291px; overflow: hidden;"><img data-original-src="//upload-images.jianshu.io/upload_images/3159686-ff4d92440cc810aa.jpg" src="//upload-images.jianshu.io/upload_images/3159686-ff4d92440cc810aa.jpg" data-original-width="600" data-original-height="291" data-original-format="image/jpeg" data-original-filesize="75135" style="box-sizing: border-box; border: 0px; vertical-align: middle; max-width: 100%; height: auto; cursor: zoom-in; transition: all 0.15s linear; display: block; z-index: 100; filter: blur(0px); opacity: 1;" alt="" /></div></div></div><p style="box-sizing: border-box; margin: 0px 0px 25px; word-break: break-word !important;"><br style="box-sizing: border-box;" /></p><p style="box-sizing: border-box; margin: 0px 0px 25px; word-break: break-word !important;">  1600q可能是数学史上最重要的一个世U的开端。笛卡尔在此四年前出生,随后又有帕斯卡尔和费马诞生。这三个人注定要改变整个数学面貌。在16世纪Q大多数数学U目都有了具体的q展Q不q新世纪的开始预告了一个更为壮观的发展。代数在几何上的q用使笛卡尔让解析几何臻于完善,帕斯卡尔发展了射影几何,数和对数的应用提升了计方法,贚w{h开始研I数论和概率论,古代极微分割Ҏ被引人几何学Qƈ最l导致了微积分的发明。在开普勒{前人的基础上,W卡和贚w分别发明了解析几何。笛卡尔的《几何学》是解析几何的一部经怹作。而对于概率论最早的探烦Q要归功于费马和帕斯卡尔。这一研究l过了O长的历史Q直到如今,仍然在吸引着众多U学家的注意力?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; word-break: break-word !important;">  随着数学的稳步前q,力学一直落在后面。虽焉基米h正确的方向,但在1800q来取得的进展很。不q?6世纪末开始,׃出现了机器,力学原理的研I终于开始了。伽利略Q笛卡尔Q惠更斯{h对这门学U做了极大的拓展。不q在他们手里Q力学已l达Cq样的高度:如果不发明新的,更有力的ҎQ就几乎不可能取得进一步进展了Q而同时期的数学的处境也差不多。幸q的是,q种现象q没有被耽搁很久Q因为在1642q_牛顿出生了?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; word-break: break-word !important;"></p><div style="box-sizing: border-box; padding-bottom: 25px; width: 700px; margin-left: -40px;"><div style="box-sizing: border-box; z-index: 100; position: relative; background-color: transparent; transition: background-color 0.1s linear; margin: 0px auto; max-width: 600px; max-height: 450px;"><div style="box-sizing: border-box; z-index: 50; padding-bottom: 450px;"></div><div data-width="600" data-height="450" style="box-sizing: border-box; position: absolute; top: 0px; left: 0px; width: 600px; height: 450px; overflow: hidden;"><img data-original-src="//upload-images.jianshu.io/upload_images/3159686-8b7afd2cc957529d.jpg" src="//upload-images.jianshu.io/upload_images/3159686-8b7afd2cc957529d.jpg" data-original-width="600" data-original-height="450" data-original-format="image/jpeg" data-original-filesize="100634" style="box-sizing: border-box; border: 0px; vertical-align: middle; max-width: 100%; height: auto; cursor: zoom-in; transition: all 0.15s linear; display: block; z-index: 100; filter: blur(0px); opacity: 1;" alt="" /></div></div></div><p style="box-sizing: border-box; margin: 0px 0px 25px; word-break: break-word !important;"><br style="box-sizing: border-box;" /></p><p style="box-sizing: border-box; margin: 0px 0px 25px; word-break: break-word !important;">  微积分ƈ非没有前w突然生的Q它是许多学者长期探索的思想l晶。在定曲线囑Ş的面U问题上Q阿基米h用到了穷竭法Q从中可以清楚地看到无穷的分析原理Q?000q后卡瓦列里又恢复了q方面的探烦Q经q托里拆利,贚wQ惠更斯Q沃利斯{h的推q与改进QŞ成了U分学中求和的Ş式。在做曲U切U的问题上,阿基c_d的螺U切U之后,W卡和贚w又做Z发展?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; word-break: break-word !important;">  牛顿的万有引力定律与二项式定理是伟大的A献,而其不朽著作《原理》标志着l典力学体系的徏立。其全书贯穿了流敎ͼ也就是微U分的概c牛的重要性在于,他集各家之大成,提出了变化率Q微分与U分互逆等微积分的基本概念Qƈ把这个方法变成了一个完整的工具体系。在德国Q微U分的原理是p布尼兹发展v来的。根据莱布尼兹自qͼ他是?674q发明微U分的,牛顿声称他逐渐M数是在1666q。由此,英国与欧z大陆数学家分道扬镳Q这是科学史上不q的一章。在q场争论中,莱布兹的记法被用到了今天,而现在h们公认牛和莱布兹是各自独立创建微U分的。微U分的创立,标志着世界q入一个新U元。从17世纪PU学开始将原来以基督教Z心的文化变革成现在这样以U学Z心的文化?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; word-break: break-word !important;"></p><div style="box-sizing: border-box; padding-bottom: 25px; width: 700px; margin-left: -40px;"><div style="box-sizing: border-box; z-index: 100; position: relative; background-color: transparent; transition: background-color 0.1s linear; margin: 0px auto; max-width: 590px; max-height: 413px;"><div style="box-sizing: border-box; z-index: 50; padding-bottom: 413px;"></div><div data-width="590" data-height="413" style="box-sizing: border-box; position: absolute; top: 0px; left: 0px; width: 590px; height: 413px; overflow: hidden;"><img data-original-src="//upload-images.jianshu.io/upload_images/3159686-7348381111f743c3.jpg" src="//upload-images.jianshu.io/upload_images/3159686-7348381111f743c3.jpg" data-original-width="590" data-original-height="413" data-original-format="image/jpeg" data-original-filesize="82501" style="box-sizing: border-box; border: 0px; vertical-align: middle; max-width: 100%; height: auto; cursor: zoom-in; transition: all 0.15s linear; display: block; z-index: 100; filter: blur(0px); opacity: 1;" alt="" /></div></div></div><p style="box-sizing: border-box; margin: 0px 0px 25px; word-break: break-word !important;"><br style="box-sizing: border-box;" /></p><p style="box-sizing: border-box; margin: 0px 0px 25px; word-break: break-word !important;">  1640q英国资产阶U革命后Q英国确立了君主立宪Ӟ世界q入了近代史时期?701q普鲁士王国成立Q?776q美国独立,1789q法国大革命Q封建制度的C和资本主义的成长是这一时期的中心内容,英国、d国、法国成一时期数学家的主要家园。在17世纪后半Ӟ数学取得了惊人的q展Q微U分是强有力的工P但必L判地考察其基。这是下一个世U的主要工作之一。在18世纪Q数学的L是由微积分发展v来的数学分析。数学分析的发展使力学和天体力学深化Q而后者的N又成了数学分析发展的动力?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; word-break: break-word !important;">  从数学家的角度而言Q?8世纪?#8220;英雄的时?#8221;Q各路豪杰尽昑֨名,包括U学史上著名的伯努利家族Q几乎对每个数学分支都做Z重要贡献的欧拉;赋予微积分清楚严谨的基础的柯西;18世纪最的数学家拉格朗日Q此外还有泰勒,麦克xQ斯ҎQ兰登,傅里Ӟ{等Q他们ؓ发展微积分做ZH出贡献。而蒙日,卡诺和彭塞列则创立了q代几何的开端。拉格朗日于1766q受腓特烈大帝邀h到柏林。这20q里Q他的作品浩如烟Pq酿了他最伟大的著作《分析力学》?当时Q法国土C的复兴气象正开始生成,巴黎再度成ؓ数学教育中心。拉普拉斯和拉格朗日一h分析学大师,他在天文力学上取得了惊h的成果,著有《天体力学》一书?随着拿破仑的铁骑横扫Ƨ陆Q这个时代也是法国历史上U学成就最丰富的时代之一?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; word-break: break-word !important;"></p><div style="box-sizing: border-box; padding-bottom: 25px; width: 700px; margin-left: -40px;"><div style="box-sizing: border-box; z-index: 100; position: relative; background-color: transparent; transition: background-color 0.1s linear; margin: 0px auto; max-width: 400px; max-height: 343px;"><div style="box-sizing: border-box; z-index: 50; padding-bottom: 343px;"></div><div data-width="400" data-height="343" style="box-sizing: border-box; position: absolute; top: 0px; left: 0px; width: 400px; height: 343px; overflow: hidden;"><img data-original-src="//upload-images.jianshu.io/upload_images/3159686-5ec3e9e7c38e338e.jpg" src="//upload-images.jianshu.io/upload_images/3159686-5ec3e9e7c38e338e.jpg" data-original-width="400" data-original-height="343" data-original-format="image/jpeg" data-original-filesize="50143" style="box-sizing: border-box; border: 0px; vertical-align: middle; max-width: 100%; height: auto; cursor: zoom-in; transition: all 0.15s linear; display: block; z-index: 100; filter: blur(0px); opacity: 1;" alt="" /></div></div></div><p style="box-sizing: border-box; margin: 0px 0px 25px; word-break: break-word !important;"><br style="box-sizing: border-box;" /></p><p style="box-sizing: border-box; margin: 0px 0px 25px; word-break: break-word !important;">18世纪末,法兰西的土地上已l取得了最大进展。随着19世纪的到来,德国很快跃居首位。高斯,阿贝,伽罗华等人发扬了贚w在代C的A献。高斯是q个时代乃至所有时代最伟大的数学家Q他Ҏ学的严密性有更高的要求,他全面发展了Ua数学和应用数学的所有领域?׃高斯q行了各U各L研究Q数学已l变得越来越高度专门化了Q更加脱Ml济生活的需要,学者们开始培养v为数学而研I数学的兴趣?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; word-break: break-word !important;">  1897q召开了国际数学家大会Q揭开?0世纪Ua数学大发展的时代Q数学的分支很快变得来多Q其中每个都是需要专家来研究的一门科目。企图涉猎整个领域的最后一人是庞加莱,目前来看Q即使有W二个高斯出玎ͼ他能否涉及极几个分支而显得游刃有余,那都是值得怀疑的。数学已l发展成Z个如此巨大的l构Q对各个学科L基石作用Q而如今我们可以毫不含p地_数学是一切科学之王?/p><p style="box-sizing: border-box; margin: 0px 0px 25px; word-break: break-word !important;"></p><div style="box-sizing: border-box; padding-bottom: 25px; width: 700px; margin-left: -40px;"><div style="box-sizing: border-box; z-index: 100; position: relative; background-color: transparent; transition: background-color 0.1s linear; margin: 0px auto; max-width: 470px; max-height: 452px;"><div style="box-sizing: border-box; z-index: 50; padding-bottom: 451.984px;"></div><div data-width="470" data-height="452" style="box-sizing: border-box; position: absolute; top: 0px; left: 0px; width: 470px; height: 451.984px; overflow: hidden;"><img data-original-src="//upload-images.jianshu.io/upload_images/3159686-17d908989abb8880.jpg" src="//upload-images.jianshu.io/upload_images/3159686-17d908989abb8880.jpg" data-original-width="470" data-original-height="452" data-original-format="image/jpeg" data-original-filesize="58763" style="box-sizing: border-box; border: 0px; vertical-align: middle; max-width: 100%; height: auto; cursor: zoom-in; transition: all 0.15s linear; display: block; z-index: 100; filter: blur(0px); opacity: 1;" alt="" /></div></div></div><p style="box-sizing: border-box; margin: 0px 0px 25px; word-break: break-word !important;"><a target="_blank" style="box-sizing: border-box; background-color: transparent; color: #3194d0; text-decoration-line: none; cursor: pointer;">极简日本漫画?/a></p></div></div></div><img src ="//www.pppqb.icu/zmj/aggbug/215700.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="//www.pppqb.icu/zmj/" target="_blank">zmj</a> 2018-06-04 14:20 <a href="//www.pppqb.icu/zmj/archive/2018/06/04/215700.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>自然U学/匀速圆周运?/title><link>//www.pppqb.icu/zmj/archive/2018/05/30/215695.html</link><dc:creator>zmj</dc:creator><author>zmj</author><pubDate>Wed, 30 May 2018 09:24:00 GMT</pubDate><guid>//www.pppqb.icu/zmj/archive/2018/05/30/215695.html</guid><wfw:comment>//www.pppqb.icu/zmj/comments/215695.html</wfw:comment><comments>//www.pppqb.icu/zmj/archive/2018/05/30/215695.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>//www.pppqb.icu/zmj/comments/commentRss/215695.html</wfw:commentRss><trackback:ping>//www.pppqb.icu/zmj/services/trackbacks/215695.html</trackback:ping><description><![CDATA[<div class="dpun"><div class="dpun">https://zh.wikibooks.org/zh-sg/%E8%87%AA%E7%84%B6%E7%A7%91%E5%AD%A6/%E5%8C%80%E9%80%9F%E5%9C%86%E5%91%A8%E8%BF%90%E5%8A%A8</div><h1 class="dpun">自然U学/匀速圆周运?/h1><div id="bodyContent" style="position: relative; line-height: 1.6; font-size: 14.24px; z-index: 0; color: #222222; font-family: sans-serif;"><div id="siteSub" style="display: inline; font-size: 13.1008px;">l基教科书,自由的教学读?/div><div id="contentSub" dir="ltr" style="font-size: 12px; line-height: 1.2em; margin: 0px 0px 1.4em 1em; color: #54595d; width: auto;"><span style="display: block;">< <a title="自然U学" style="text-decoration-line: none; color: #0b0080; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial;">自然U学</a></span></div><div id="jump-to-nav" style="overflow: hidden; height: 0px; zoom: 1; user-select: none; margin-top: -1.4em; margin-bottom: 1.4em;"><a style="text-decoration-line: none; color: #0b0080; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial;"></a><a style="text-decoration-line: none; color: #0b0080; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial;"></a></div><div id="mw-content-text" dir="ltr" style="direction: ltr;"><div class="dpun"><div id="toc" style="border: 1px solid #a2a9b1; background-color: #f8f9fa; padding: 7px; font-size: 13.528px; display: table; zoom: 1;"><div dir="ltr" style="direction: ltr;"><h2 class="dpun">目录</h2><span style="user-select: none; font-size: 13.528px;"> [<a role="button" tabindex="0" style="color: #0645ad; background: none; cursor: pointer;">隐藏</a>] </span></div><ul style="list-style-type: none; margin: 0.3em 0px; padding: 0px; list-style-image: none;"><li tocsection-1"="" style="margin-bottom: 0.1em;"><a style="text-decoration-line: none; color: #0b0080; background: none;"><span style="display: table-cell; text-decoration: inherit; padding-left: 0px; padding-right: 0.5em; color: #222222;">1</span><span style="display: table-cell; text-decoration: inherit;">匀?/span></a></li><li tocsection-2"="" style="margin-bottom: 0.1em;"><a style="text-decoration-line: none; color: #0b0080; background: none;"><span style="display: table-cell; text-decoration: inherit; padding-left: 0px; padding-right: 0.5em; color: #222222;">2</span><span style="display: table-cell; text-decoration: inherit;">加速度和向心力</span></a></li><li tocsection-3"="" style="margin-bottom: 0.1em;"><a style="text-decoration-line: none; color: #0b0080; background: none;"><span style="display: table-cell; text-decoration: inherit; padding-left: 0px; padding-right: 0.5em; color: #222222;">3</span><span style="display: table-cell; text-decoration: inherit;">UK度和角速度</span></a></li><li tocsection-4"="" style="margin-bottom: 0.1em;"><a style="text-decoration-line: none; color: #0b0080; background: none;"><span style="display: table-cell; text-decoration: inherit; padding-left: 0px; padding-right: 0.5em; color: #222222;">4</span><span style="display: table-cell; text-decoration: inherit;">伪矢?/span></a></li></ul></div><h2 class="dpun"><span id="匀?>匀?/span><span style="user-select: none; font-size: small; margin-left: 1em; vertical-align: baseline; line-height: 1em; white-space: nowrap; unicode-bidi: isolate;"><span style="margin-right: 0.25em; color: #54595d;">[</span><a title="~辑节Q匀? style="text-decoration-line: none; color: #0b0080; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial;">~辑</a><span style="margin-left: 0.25em; color: #54595d;">]</span></span></h2><p style="margin: 0.5em 0px; line-height: inherit;">匀速圆周运动,֐思义Q物体以“匀?#8221;做圆周运动。如果你已经矢量的概念理解透彻Q那么你一定应该知道,q里?#8220;匀?#8221;l不是指速度Q因为物体做曲线q动Q速度无时无刻没有变化。我们之后会提到Q这里的速度实际上是指线速度Q也是物体q动的速率。ؓ了方便表qͼ在本章中Q我们直接用圆心来称呼物体做圆周q动的轨q圆的圆心?匀速圆周运动是一c重要的q动Q广泛存在于自然界中。很多的q动Q都可以被视作匀速圆周运动,如行星上某一天随着行星自传l自转中心的q动Q就可以被视作匀速圆周运动?/p><h2 class="dpun"><span id="加速度和向心力">加速度和向心力</span><span style="user-select: none; font-size: small; margin-left: 1em; vertical-align: baseline; line-height: 1em; white-space: nowrap; unicode-bidi: isolate;"><span style="margin-right: 0.25em; color: #54595d;">[</span><a title="~辑节Q加速度和向心力" style="text-decoration-line: none; color: #0b0080; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial;">~辑</a><span style="margin-left: 0.25em; color: #54595d;">]</span></span></h2><div tright"="" style="clear: right; float: right; margin: 0.5em 0px 1.3em 1.4em; width: auto; border-color: #f8fcff;"><div style="border: 1px solid #c8ccd1; padding: 3px; background-color: #f8f9fa; font-size: 13.528px; text-align: center; overflow: hidden; width: 222px;"><a style="text-decoration-line: none; color: #0b0080; background: none;"><img alt="" src="https://upload.wikimedia.org/wikipedia/commons/thumb/1/1d/%E5%9C%86%E5%91%A8%E8%BF%90%E5%8A%A8.png/220px-%E5%9C%86%E5%91%A8%E8%BF%90%E5%8A%A8.png" width="220" height="221" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/1/1d/%E5%9C%86%E5%91%A8%E8%BF%90%E5%8A%A8.png/330px-%E5%9C%86%E5%91%A8%E8%BF%90%E5%8A%A8.png 1.5x, //upload.wikimedia.org/wikipedia/commons/1/1d/%E5%9C%86%E5%91%A8%E8%BF%90%E5%8A%A8.png 2x" data-file-width="423" data-file-height="424" style="border: 1px solid #c8ccd1; vertical-align: middle; background-color: #ffffff;" /></a><div style="border: 0px; line-height: 1.4em; padding: 3px; font-size: 12.8516px;"><div style="float: right; margin-left: 3px; font-size: 12.209px; margin-right: 0px;"><a title="攑֤" style="text-decoration-line: none; color: #0b0080; background: linear-gradient(transparent, transparent), url("data:image/svg+xml,%3Csvg xmlns=%22//www.w3.org/2000/svg%22 viewBox=%220 0 11 15%22 width=%2215%22 height=%2211%22%3E %3Cg id=%22magnify-clip%22 fill=%22%23fff%22 stroke=%22%23000%22%3E %3Cpath id=%22bigbox%22 d=%22M1.509 1.865h10.99v7.919h-10.99z%22/%3E %3Cpath id=%22smallbox%22 d=%22M-1.499 6.868h5.943v4.904h-5.943z%22/%3E %3C/g%3E %3C/svg%3E"); display: block; text-indent: 15px; white-space: nowrap; overflow: hidden; width: 15px; height: 11px; user-select: none;"></a></div>CZ? 匀速圆周运动的向心力公式推?/div></div></div><p style="margin: 0.5em 0px; line-height: inherit;">做匀速圆周运动的物体Q速度无时无刻没有变化Q因此肯定有一个加速度来改变速度Q我们现在来探究q个加速度I竟是怎样的一个加速度?/p><p style="margin: 0.5em 0px; line-height: inherit;">如示例图1所C的匀速圆周运动,?img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/02d3006c4190b1939b04d9b9bb21006fb4e6fa4a" aria-hidden="true" alt="t_{0}" style="border: 0px; vertical-align: -0.671ex; margin: 0px; display: inline-block; width: 1.894ex; height: 2.343ex;" />时刻Q物体运动的速度?img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/ebe4391971d74f437e66bb14c44677c0837a10b4" aria-hidden="true" alt="{\displaystyle {\boldsymbol {v_{0}}}}" style="border: 0px; vertical-align: -0.671ex; margin: 0px; display: inline-block; width: 2.495ex; height: 2.009ex;" />,q且在经q?img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/8c28867ecd34e2caed12cf38feadf6a81a7ee542" aria-hidden="true" alt="\Delta t" style="border: 0px; vertical-align: -0.338ex; margin: 0px; display: inline-block; width: 2.775ex; height: 2.176ex;" />后的<img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/cb0768c0bd659f2f84fb5ef9f4b74f336123d915" aria-hidden="true" alt="{\displaystyle t_{1}}" style="border: 0px; vertical-align: -0.671ex; margin: 0px; display: inline-block; width: 1.894ex; height: 2.343ex;" />时刻Q速度?img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/d1bff5ed76563d86a81a4a66f41a34a326607a6b" aria-hidden="true" alt="{\displaystyle {\boldsymbol {v_{1}}}}" style="border: 0px; vertical-align: -0.671ex; margin: 0px; display: inline-block; width: 2.495ex; height: 2.009ex;" />Q这D|间物体运动的轨迹圆弧所对的圆心角ؓ<img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/6e5ab2664b422d53eb0c7df3b87e1360d75ad9af" aria-hidden="true" alt="\theta " style="border: 0px; vertical-align: -0.338ex; margin: 0px; display: inline-block; width: 1.09ex; height: 2.176ex;" />Q且无论在Q何时刻,物体q动的速率都ؓ<img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/e07b00e7fc0847fbd16391c778d65bc25c452597" aria-hidden="true" alt="{\displaystyle v}" style="border: 0px; vertical-align: -0.338ex; margin: 0px; display: inline-block; width: 1.128ex; height: 1.676ex;" />。如果我们以A为原点,AG?img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/b8a6208ec717213d4317e666f1ae872e00620a0d" aria-hidden="true" alt="{\displaystyle y}" style="border: 0px; vertical-align: -0.671ex; margin: 0px; display: inline-block; width: 1.155ex; height: 2.009ex;" />轴负方向Q?img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/ebe4391971d74f437e66bb14c44677c0837a10b4" aria-hidden="true" alt="{\displaystyle {\boldsymbol {v_{0}}}}" style="border: 0px; vertical-align: -0.671ex; margin: 0px; display: inline-block; width: 2.495ex; height: 2.009ex;" />方向?img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/87f9e315fd7e2ba406057a97300593c4802b53e4" aria-hidden="true" alt="x" style="border: 0px; vertical-align: -0.338ex; margin: 0px; display: inline-block; width: 1.33ex; height: 1.676ex;" />轴正方向建立q面直角坐标p,则有<img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/98214187f4110ef2123e291d3b9b7a31b5ea50aa" aria-hidden="true" alt="{\displaystyle {\boldsymbol {v_{0}}}=(v,0)}" style="border: 0px; vertical-align: -0.838ex; margin: 0px; display: inline-block; width: 10.727ex; height: 2.843ex;" />Q?img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/bcc9ec6261b2c46ea7c80f8c3a2941d610a94f19" aria-hidden="true" alt="{\displaystyle {\boldsymbol {v1}}=(v\cos \theta ,v\sin \theta )}" style="border: 0px; vertical-align: -0.838ex; margin: 0px; display: inline-block; width: 20.548ex; height: 2.843ex;" />?/p><p style="margin: 0.5em 0px; line-height: inherit;"></p><div style="overflow-x: auto; max-width: 100%;"><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/a4902ff35be2939ad937201628e5cd1c1b89b370" aria-hidden="true" alt="{\displaystyle {\begin{aligned}\Delta {\boldsymbol {v}}&={\boldsymbol {v_{1}}}-{\boldsymbol {v0}}\\&=(v\cos \theta -v,v\sin \theta )\\\end{aligned}}}" style="border: 0px; vertical-align: -2.338ex; display: block; margin-left: auto !important; margin-right: auto !important; width: 25.866ex; height: 5.843ex;" /></div>现在我们假设我们考虑?img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/8c28867ecd34e2caed12cf38feadf6a81a7ee542" aria-hidden="true" alt="\Delta t" style="border: 0px; vertical-align: -0.338ex; display: inline-block; width: 2.775ex; height: 2.176ex;" />值很,那么此时<img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/6e5ab2664b422d53eb0c7df3b87e1360d75ad9af" aria-hidden="true" alt="\theta " style="border: 0px; vertical-align: -0.338ex; display: inline-block; width: 1.09ex; height: 2.176ex;" />也非常小Q此时有<div style="overflow-x: auto; max-width: 100%;"><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/d3cbff22fd5652432137c88353b59a5d6ed5edd2" aria-hidden="true" alt="{\displaystyle \cos \theta \approx 1}" style="border: 0px; vertical-align: -0.338ex; display: block; margin-left: auto !important; margin-right: auto !important; width: 8.85ex; height: 2.176ex;" /></div>?div style="overflow-x: auto; max-width: 100%;"><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/9a604432d08fc1bd289e40ba08eed0c7ec697ea3" aria-hidden="true" alt="{\displaystyle \sin \theta \approx \theta }" style="border: 0px; vertical-align: -0.338ex; display: block; margin-left: auto !important; margin-right: auto !important; width: 8.522ex; height: 2.176ex;" /></div>h意,上述公式来自于微分,如果你对微分的内容ƈ不熟悉,请你比较U段GD以及<img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/6e5ab2664b422d53eb0c7df3b87e1360d75ad9af" aria-hidden="true" alt="\theta " style="border: 0px; vertical-align: -0.338ex; display: inline-block; width: 1.09ex; height: 2.176ex;" />所对的弧来感受Q你也可以用cM于GeoGebra的开源数学图形计Y件作囄观感受一下。当<img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/8c28867ecd34e2caed12cf38feadf6a81a7ee542" aria-hidden="true" alt="\Delta t" style="border: 0px; vertical-align: -0.338ex; display: inline-block; width: 2.775ex; height: 2.176ex;" />近?Ӟ我们认ؓ上述“≈”是可以被视作“=”的。因此有Q?p style="margin: 0.5em 0px; line-height: inherit;"></p><p style="margin: 0.5em 0px; line-height: inherit;"></p><div style="overflow-x: auto; max-width: 100%;"><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/d78dad4011b7218c814de97f1d6e163cc7f50e84" aria-hidden="true" alt="{\displaystyle \Delta {\boldsymbol {v}}=(0,v\sin \theta )}" style="border: 0px; vertical-align: -0.838ex; display: block; margin-left: auto !important; margin-right: auto !important; width: 16.206ex; height: 2.843ex;" /></div>我们上式以?img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/2d2e5c788c9332231edccaa1c4126720bac91c1e" aria-hidden="true" alt="{\displaystyle \theta ={\frac {v\Delta t}{r}}}" style="border: 0px; vertical-align: -1.838ex; display: inline-block; width: 8.928ex; height: 5.343ex;" />带入计算加速度的公?div style="overflow-x: auto; max-width: 100%;"><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/df17c0a86b7d943c362c00e97153baca7f1a4b67" aria-hidden="true" alt="{\displaystyle {\begin{aligned}{\boldsymbol {a}}&={\frac {\Delta {\boldsymbol {v}}}{\Delta t}}\\&=(0,{\frac {v^{2}}{r}})\\\end{aligned}}}" style="border: 0px; vertical-align: -4.82ex; display: block; margin-left: auto !important; margin-right: auto !important; margin-bottom: -0.184ex; width: 12.345ex; height: 11.176ex;" /></div><p style="margin: 0.5em 0px; line-height: inherit;"></p><p style="margin: 0.5em 0px; line-height: inherit;">我们从上q结Z看到Q物体加速度<img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/df0c47bb21acb94ccb65db3da51e075abc68a898" aria-hidden="true" alt="{\displaystyle {\boldsymbol {a}}}" style="border: 0px; vertical-align: -0.338ex; margin: 0px; display: inline-block; width: 1.471ex; height: 1.676ex;" />是一个垂直于物体q动速度且方向指向圆心的矢量Q大关pd׃式给出。由于这?img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/02d3006c4190b1939b04d9b9bb21006fb4e6fa4a" aria-hidden="true" alt="t_{0}" style="border: 0px; vertical-align: -0.671ex; margin: 0px; display: inline-block; width: 1.894ex; height: 2.343ex;" />时刻是Q意取的,因此我们可以得出QQ何时d匀速圆周运动的物体Q加速度始终垂直于速度且指向圆心,我们这个加速度叫做<strong class="dpun">向心加速度</strong>。根据牛第二定律,物体在Q何时刻都受到的合外力?/p><p style="margin: 0.5em 0px; line-height: inherit;"></p><div style="overflow-x: auto; max-width: 100%;"><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/2ec3875c9028057a7d9abfa644cd9dd2190df080" aria-hidden="true" alt="{\displaystyle {\boldsymbol {F}}=m{\frac {{\boldsymbol {v}}|{\boldsymbol {v}}|}{r}}}" style="border: 0px; vertical-align: -1.838ex; display: block; margin-left: auto !important; margin-right: auto !important; width: 11.785ex; height: 5.676ex;" /></div>如果我们只考虑大小标量Q则<p style="margin: 0.5em 0px; line-height: inherit;"></p><p style="margin: 0.5em 0px; line-height: inherit;"></p><div style="overflow-x: auto; max-width: 100%;"><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/0cee547ebd54d0caff60118c0bb83c21671ffc06" aria-hidden="true" alt="{\displaystyle F=m{\frac {v^{2}}{r}}}" style="border: 0px; vertical-align: -1.838ex; display: block; margin-left: auto !important; margin-right: auto !important; width: 9.898ex; height: 5.676ex;" /></div>我们这个合外力UC<strong class="dpun">向心?/strong>?p style="margin: 0.5em 0px; line-height: inherit;"></p><p style="margin: 0.5em 0px; line-height: inherit;">到这里,你应该能够感受向心力I竟来自于哪里,例如Q绕地球做圆周运动(如果q似地认为是圆周q动的话Q的月球Q向心力来自于地球对它的引力。和引力有关的内容,我们在下个章节介绍?/p><h2 class="dpun"><span id="UK度和角速度">UK度和角速度</span><span style="user-select: none; font-size: small; margin-left: 1em; vertical-align: baseline; line-height: 1em; white-space: nowrap; unicode-bidi: isolate;"><span style="margin-right: 0.25em; color: #54595d;">[</span><a title="~辑节Q线速度和角速度" style="text-decoration-line: none; color: #0b0080; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial;">~辑</a><span style="margin-left: 0.25em; color: #54595d;">]</span></span></h2><p style="margin: 0.5em 0px; line-height: inherit;">在匀速圆周运动中Q我们给予速率一个特D的名称Q称?strong>UK度</strong>Q表C物体沿弧线q动的速度大小?/p><p style="margin: 0.5em 0px; line-height: inherit;">我们定义新的矢量角速度</p><div style="overflow-x: auto; max-width: 100%;"><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/1cd7873ba581568f3e158b7a47126288cfed7fe9" aria-hidden="true" alt="{\displaystyle {\boldsymbol {\omega }}={\frac {{\boldsymbol {r}}\times {\boldsymbol {v}}}{{\boldsymbol {r}}^{2}}}}" style="border: 0px; vertical-align: -2.005ex; display: block; margin-left: auto !important; margin-right: auto !important; width: 10.992ex; height: 5.009ex;" /></div>q个矢量和物体做圆周q动的^面是垂直Q但是其定义的方式似乎十分晦涩。如果我们只考虑标量Q也是其大,那么是<div style="overflow-x: auto; max-width: 100%;"><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/12138afcc600a32b1607606c824d2064900871de" aria-hidden="true" alt="{\displaystyle \omega ={\frac {v}{r}}}" style="border: 0px; vertical-align: -1.838ex; display: block; margin-left: auto !important; margin-right: auto !important; width: 6.508ex; height: 4.676ex;" /></div>q个矢量意义就一目了然了。首先,它的大小是物体运动的速度除以做圆周运动的轨迹圆的半径Q如果我们在公式两边同时乘以旉Q那么左右两辚w可以代表q段旉内物体经q的弧所对的圆心角大。简a?#8212;—q个矢量通过描述物体单位旉内所扫过的角度来描述了物体做圆周q动的快慢。角速度的单位有很多U,只要合适的单位都可以被使用Q经怋用的单位有弧度每U(rad/sQ,对于那些角速度非常大的匀速圆周运动,我们习惯上用{每分QrpmQ、{每秒QrpsQ等单位Q它们代表物体每分(或每U)做匀速圆周运动的周数。如果你Ҏ字设备硬件有一定的了解Q你可能已经注意刎ͼ机械盘的性能指标之一的{速单位就是{每分?p style="margin: 0.5em 0px; line-height: inherit;"></p><h2 class="dpun"><span id="伪矢?>伪矢?/span><span style="user-select: none; font-size: small; margin-left: 1em; vertical-align: baseline; line-height: 1em; white-space: nowrap; unicode-bidi: isolate;"><span style="margin-right: 0.25em; color: #54595d;">[</span><a title="~辑节Q伪矢量" style="text-decoration-line: none; color: #0b0080; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial;">~辑</a><span style="margin-left: 0.25em; color: #54595d;">]</span></span></h2><p style="margin: 0.5em 0px; line-height: inherit;">Z么线速度的方向不具备意义Q我们仍然要它视作矢量Q这是因为,UK度被视为矢量后Q我们才能完善一pd相关的计。例如,计算向心力的公式Q可以重新写?/p><p style="margin: 0.5em 0px; line-height: inherit;"></p><div style="overflow-x: auto; max-width: 100%;"><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/8239065bbf6c7491f2e3e33f1fdb5617ed311e09" aria-hidden="true" alt="{\displaystyle {\boldsymbol {F}}=m{\boldsymbol {\omega }}\times {\boldsymbol {v}}}" style="border: 0px; vertical-align: -0.338ex; display: block; margin-left: auto !important; margin-right: auto !important; width: 12.846ex; height: 2.176ex;" /></div>如果上q公式中的角速度用标量代替,计算出的向心力方向即是错误的。实际上Q定义这L矢量Q是Z完善我们的矢量的计算pȝ?p style="margin: 0.5em 0px; line-height: inherit;"></p><p style="margin: 0.5em 0px; line-height: inherit;">我们物理量中,以矢量叉U(×Q定义的矢量Q称之ؓ伪矢量?/p></div></div></div></div><img src ="//www.pppqb.icu/zmj/aggbug/215695.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="//www.pppqb.icu/zmj/" target="_blank">zmj</a> 2018-05-30 17:24 <a href="//www.pppqb.icu/zmj/archive/2018/05/30/215695.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Bernoulli Equation(Curve of a Baseball) - սƵ2019|սع//www.pppqb.icu/zmj/archive/2018/03/05/215545.htmlzmjzmjMon, 05 Mar 2018 08:39:00 GMT//www.pppqb.icu/zmj/archive/2018/03/05/215545.html//www.pppqb.icu/zmj/comments/215545.html//www.pppqb.icu/zmj/archive/2018/03/05/215545.html#Feedback0//www.pppqb.icu/zmj/comments/commentRss/215545.html//www.pppqb.icu/zmj/services/trackbacks/215545.html//hyperphysics.phy-astr.gsu.edu/hbase/pber.html

Bernoulli Equation

The Bernoulli Equation can be considered to be a statement of the conservation of energy principle appropriate for flowing fluids. The qualitative behavior that is usually labeled with the term "Bernoulli effect" is the lowering of fluid pressure in regions where the flow velocity is increased. This lowering of pressure in a constriction of a flow path may seem counterintuitive, but seems less so when you consider pressure to be energy density. In the high velocity flow through the constriction, kinetic energy must increase at the expense of pressure energy.

Steady-state flow caveat: While the Bernoulli equation is stated in terms of universally valid ideas like conservation of energy and the ideas of pressure, kinetic energy and potential energy, its application in the above form is limited to cases of steady flow. For flow through a tube, such flow can be visualized as laminar flow, which is still an idealization, but if the flow is to a good approximation laminar, then the kinetic energy of flow at any point of the fluid can be modeled and calculated. The kinetic energy per unit volume term in the equation is the one which requires strict constraints for the Bernoulli equation to apply - it basically is the assumption that all the kinetic energy of the fluid is contributing directly to the forward flow process of the fluid. That should make it evident that the existence of turbulence or any chaotic fluid motion would involve some kinetic energy which is not contributing to the advancement of the fluid through the tube.

It should also be said that while conservation of energy always applies, this form of parsing out that energy certainly does not describe how that energy is distributed under transient conditions. A good visualization of the Bernoulli effect is the flow through a constriction, but that neat picture does not describe the fluid when you first turn on the flow.

Another approximation involved in the statement of the Bernoulli equation above is the neglect of losses from fluid friction. Idealized laminar flow through a pipe can be modeled by , which does include viscous losses resulting in a lowering of the pressure as you progress along the pipe. The statement of the Bernoulli equation above would lead to the expectation that the pressure would return to the value P1 past the constriction since the radius returns to its original value. This is not the case because of the loss of some energy from the active flow process by friction into disordered molecular motion (thermal energy). More accurate modeling can be done by combining the Bernoulli equation with Poiseuille's law. A real example which might help visualize the process is the pressure monitoring of the flow through a constricted tube.

Bernoulli calculation

Index

Bernoulli concepts
 
HyperPhysics***** Mechanics ***** FluidsR Nave
Go Back





Bernoulli Calculation

The calculation of the "real world" pressure in a constriction of a tube is difficult to do because of viscous losses, turbulence, and the assumptions which must be made about the velocity profile (which affect the calculated kinetic energy). The model calculation here assumes laminar flow (no turbulence), assumes that the distance from the larger diameter to the smaller is short enough that viscous losses can be neglected, and assumes that the velocity profile follows that of theoretical laminar flow. Specifically, this involves assuming that the effective flow velocity is one half of the maximum velocity, and that the average kinetic energy density is given by one third of the maximum kinetic energy density.
Now if you can swallow all those assumptions, you can model* the flow in a tube where the volume flowrate is cm3/s and the fluid density is ρ = gm/cm3. For an inlet tube area A1cm2 (radius r1 =cm), the geometry of flow leads to an effective fluid velocity of v1 =cm/s. Since the Bernoulli equation includes the fluid potential energy as well, the height of the inlet tube is specified as h1 = cm. If the area of the tube is constricted to A2=cm2 (radius r2 =cm), then without any further assumptions the effective fluid velocity in the constriction must be v2 =  cm/s. The height of the constricted tube is specified as h2 =  cm. 

The kinetic energy densities at the two locations in the tube can now be calculated, and the Bernoulli equation applied to constrain the process to conserve energy, thus giving a value for the pressure in the constriction. First, specify a pressure in the inlet tube:
Inlet pressure = P1 =  kPa = lb/in2 =  mmHg =  atmos. 
The energy densities can now be calculated. The energy unit for the CGS units used is the erg.
Inlet tube energy densities
Kinetic energy densityerg/cm3
Potential energy densityerg/cm3
Pressure energy densityerg/cm3
Constricted tube energy densities
Kinetic energy densityerg/cm3
Potential energy densityerg/cm3
Pressure energy densityerg/cm3
The pressure energy density in the constricted tube can now be finally converted into more conventional pressure units to see the effect of the constricted flow on the fluid pressure:

Calculated pressure in constriction =
P2kPa = lb/in2 =  mmHg =  atmos. 

This calculation can give some perspective on the energy involved in fluid flow, but it's accuracy is always suspect because of the assumption of laminar flow. For typical inlet conditions, the energy density associated with the pressure will be dominant on the input side; after all, we live at the bottom of an atmospheric sea which contributes a large amount of pressure energy. If a drastic enough reduction in radius is used to yield a pressure in the constriction which is less than atmospheric pressure, there is almost certainly some turbulence involved in the flow into that constriction. Nevertheless, the calculation can show why we can get a significant amount of suction (pressure less than atmospheric) with an "aspirator" on a high pressure faucet. These devices consist of a metal tube of reducing radius with a side tube into the region of constricted radius for suction. 

*Note: Some default values will be entered for some of the values as you start exploring the calculation. All of them can be changed as a part of your calculation.
Index

Bernoulli concepts
 
HyperPhysics***** Mechanics ***** FluidsR Nave
Go Back





Curve of a Baseball

A non-spinning baseball or a stationary baseball in an airstream exhibits symmetric flow. A baseball which is thrown with spin will curve because one side of the ball will experience a reduced pressure. This is commonly interpreted as an application of the Bernoulli principle and involves the viscosity of the air and the boundary layer of air at the surface of the ball.

The roughness of the ball's surface and the laces on the ball are important! With a perfectly smooth ball you would not get enough interaction with the air.

There are some difficulties with this picture of the curving baseball. The Bernoulli equation cannot really be used to predict the amount of curve of the ball; the flow of the air is compressible, and you can't track the density changes to quantify the change in effective pressure. The experimental work of Watts and Ferrer with baseballs in a wind tunnel suggests another model which gives prominent attention to the spinning boundary layer of air around the baseball. On the side of the ball where the boundary layer is moving in the same direction as the free stream air speed, the boundary layer carries further around the ball before it separates into turbulent flow. On the side where the boundary layer is opposed by the free stream flow, it tends to separate prematurely. This gives a net deflection of the airstream in one direction behind the ball, and therefore a  reaction force on the ball in the opposite direction. This gives an effective force in the same direction indicated above.

Similar issues arise in the treatment of a spinning cylinder in an airstream, which has been shown to experience lift. This is the subject of the Kutta-Joukowski theorem. It is also invoked in the discussion of airfoil lift.

Index

Bernoulli Equation

Bernoulli concepts

Reference
Watts and Ferrer
 
HyperPhysics***** Mechanics ***** FluidsR Nave
Go Back





Airfoil

The air across the top of a conventional airfoil experiences constricted flow lines and increased air speed relative to the wing. This causes a decrease in pressure on the top according to the Bernoulli equation and provides a lift force. Aerodynamicists (see Eastlake) use the Bernoulli model to correlate with pressure measurements made in wind tunnels, and assert that when pressure measurements are made at multiple locations around the airfoil and summed, they do agree reasonably with the observed lift.



Illustration of lift force
and angle of attack
Bernoulli vs Newton
for airfoil lift
Airfoil terminology

Others appeal to a model based on Newton's laws and assert that the main lift comes as a result of the angle of attack. Part of the Newton's law model of part of the lift force involves attachment of the boundary layer of air on the top of the wing with a resulting downwash of air behind the wing. If the wing gives the air a downward force, then by Newton's third law, the wing experiences a force in the opposite direction - a lift. While the "Bernoulli vs Newton" debate continues, Eastlake's position is that they are really equivalent, just different approaches to the same physical phenonenon. NASA has a nice aerodynamics site at which these issues are discussed.

Increasing the angle of attack gives a larger lift from the upward component of pressure on the bottom of the wing. The lift force can be considered to be a  reaction force to the force exerted downward on the air by the wing.

At too high an angle of attack, turbulent flow increases the drag dramatically and will stall the aircraft.

A vapor trail over the wing helps visualize the air flow. Photo by Frank Starmer, used by permission.

Index

Bernoulli Equation

References
Eastlake


NASA 
Aerodynamics
 
HyperPhysics***** Mechanics ***** FluidsR Nave
Go Back


zmj 2018-03-05 16:39 发表评论
]]>What is Bernoulli's equation? - սƵ2019|սع//www.pppqb.icu/zmj/archive/2018/03/05/215544.htmlzmjzmjMon, 05 Mar 2018 08:37:00 GMT//www.pppqb.icu/zmj/archive/2018/03/05/215544.html//www.pppqb.icu/zmj/comments/215544.html//www.pppqb.icu/zmj/archive/2018/03/05/215544.html#Feedback0//www.pppqb.icu/zmj/comments/commentRss/215544.html//www.pppqb.icu/zmj/services/trackbacks/215544.html阅读全文

zmj 2018-03-05 16:37 发表评论
]]>
攑֤鏡的原理 - սƵ2019|սع//www.pppqb.icu/zmj/archive/2018/02/28/215539.htmlzmjzmjWed, 28 Feb 2018 09:23:00 GMT//www.pppqb.icu/zmj/archive/2018/02/28/215539.html//www.pppqb.icu/zmj/comments/215539.html//www.pppqb.icu/zmj/archive/2018/02/28/215539.html#Feedback0//www.pppqb.icu/zmj/comments/commentRss/215539.html//www.pppqb.icu/zmj/services/trackbacks/215539.html//www.phy.ntnu.edu.tw/demolab/phpBB/viewtopic.php?topic=15841
//enjoy.phy.ntnu.edu.tw/demolab/phpBB/

光學 標題:攑֤鏡的原理
 1:黃福?nbsp;(研究所)張貼:2006-10-22 12:39:58:
 
上圖示眼睛直接觀看蜜蜂時在視E膜上呈珄大小,圖中 dn通常是明視距離也是正常狀況為25cm. 視角= y0/dn 
下圖則顯CZ用放大鏡後的效果,視角=yi/L
 
比較兩圖可以知道 眼睛看物體的視角變大了!
兩者視角的攑֤比率是 攑֤鏡的攑֤率(注意和一般透鏡攑֤率的定義M=-si/so=yi/yo不同Q?nbsp;
攑֤鏡的攑֤?(yi/L)/(yo/dn)=-si*dn/(so*L)

使用攑֤鏡時 物體通常非常接近焦距Qsi->L, so->f) 
所以放大鏡的(角)攑֤倍率= dn/f 只和透鏡的焦距有關! 
 2:黃福?研究所)張貼:2006-10-22 13:02:58: [回應上一] 

一旦你清楚瞭解了放大鏡的工作原?之後要理?望遠鏡或微鏡就很簡單了

攑֤鏡藉由將物體攑֜焦距內一點點 產生虛像的視角放?讓眼睛看到更大的影像DE膜?br />
若是有物體位於很遠的地方 我們知?加上透鏡後物體會呈現於透鏡的焦點附q!
但是影像會很?因此可以利用攑֤鏡的效果其攑֤
若是我們在物體成像位置後放|另一個透鏡 且透鏡焦距是該像與透鏡的距離(E大一點)
於是 很遠處的物體所形成的像 被第二個透鏡以視角放大的方式讓我們看?是 望遠鏡了Q?br />
如下?br /> 


而顯微鏡則是物體放|於透鏡焦距到兩倍焦距之?然後所形成的像 
再度透過W二個透鏡以放大鏡的方式放?如下?nbsp;

 

 3:x?/a>榮譽點數5?/a> (高中?張貼:2006-12-31 12:41:28: [回應上一] 
原來望遠鏡是兩個放大鏡Q之前還認為是一個凸、ㄧ凹,q好及時發現?img height="15" src="//www.phy.ntnu.edu.tw/pix/smiles/2.gif" width="15" align="absMiddle" border="0" style="border: 0px;" alt="" />
 4:李偉榮譽點數3?/a>(大學理工U系)張貼:2006-12-31 15:24:22: [回應上一] 

 

Quote:
?2006-12-31 12:41:28, x?寫了: 原來望遠鏡是兩個放大鏡Q之前還認為是一個凸、ㄧ凹,q好及時發現?img height="15" src="//www.phy.ntnu.edu.tw/pix/smiles/2.gif" width="15" align="absMiddle" border="0" style="border: 0px;" alt="" />

 

也有用一怸凹做成的望遠鏡,例如從前在劇場用的型觀劇鏡?/p>

 5:x?/a>榮譽點數5?/a> (高中?張貼:2006-12-31 15:32:38: [回應上一] 
謝李偉老師及時的告知,原來原理是用一個放大鏡來觀看凸透鏡或者凹面鏡所呈現的遠方物體媄像,差一點變成另一E錯誤?br />
 6:Adi (國中)張貼:2012-11-06 00:13:59: [回應W??/a>] 
請問一怸凹的望遠鏡如何劃成像?br />
 7:黃福?研究所)張貼:2012-11-06 19:45:40: [回應上一] 
一般的望遠鏡是用兩個凸透鏡i成
歡迎參?nbsp;凔R鏡成像與組合透鏡 (微?望遠? 


zmj 2018-02-28 17:23 发表评论
]]>IDE Debug Helpers - սƵ2019|սع//www.pppqb.icu/zmj/archive/2018/02/12/215516.htmlzmjzmjMon, 12 Feb 2018 05:25:00 GMT//www.pppqb.icu/zmj/archive/2018/02/12/215516.html//www.pppqb.icu/zmj/comments/215516.html//www.pppqb.icu/zmj/archive/2018/02/12/215516.html#Feedback0//www.pppqb.icu/zmj/comments/commentRss/215516.html//www.pppqb.icu/zmj/services/trackbacks/215516.htmlhttps://wiki.qt.io/IDE_Debug_Helpers

Qt Creator

Qt Creator directly supports introspection of all Qt Containers and QObject derived classes for Qt 4 and Qt 5. User defined types can be supported in addition, see the Qt Creator documentation for details.

LLDB

There is an effort to introspect Qt types using LLDB at https://bitbucket.org/lukeworth/lldb-qt-formatters.

KDevelop ships formatter scripts in its LLDB plugin for Qt types that can be used directly in plain LLDB. https://unlimitedcodeworks.xyz/blog/2016/08/20/gsoc-kdevelop-lldb-final-report/#using-data-formatter-scripts-outside-kdevelop

MS visual studio QString & QByteArray expansions

The new layout of QString in Qt 5 is hard to inspect using the debugger. The following code can be added to autoexp.dat (c:\program files(x86)\visual studio 9.0\common7\packages\debugger\autoexp.dat) You should add it to the [Visualizer] section, before the STL/ATL containers.

; Qt types QStringData{  preview ([(unsigned short*)$e.d + $e.offset,su])  stringview ([(unsigned short*)$e.d + $e.offset,sub]) } QString{  preview ([$e.d]) } QByteArrayData{  preview ([(unsigned char*)$e.d + $e.offset,s])  stringview ([(unsigned char*)$e.d + $e.offset,sb]) } QByteArray{  preview ([$e.d]) } 

If all else fails you can always just add a watcher for

  (char*)str.d + str.d->offset,su 

in the debugger, to see the contents of str.

MS Visual Studio 2012

There is a new way to visualize native type, see //code.msdn.microsoft.com/Writing-type-visualizers-2eae77a2 for details.

Ready-made .natvis files are included in the Visual Studio add-in.

So we can visualize QString and some other types using qt5.natvis file (save to file: %USERPROFILE%\Documents\Visual Studio 2012\Visualizers\qt5.natvis)

<?xml version="1.0" encoding="utf-8"?> <AutoVisualizer >  <Type Name="QString">  <DisplayString>{(char*)d + d->offset,su}</DisplayString>  </Type>  <Type Name="QtPrivate::RefCount">  <DisplayString>{atomic}</DisplayString>  </Type>  <Type Name="QBasicAtomicInteger<int>">  <DisplayString>{_q_value}</DisplayString>  </Type>  <Type Name="QTypedArrayData<'''>">  <DisplayString>{{Count = {size}}}</DisplayString>  <Expand>  <Item Name="[size]">size</Item>  <ArrayItems>  <Size>size</Size>  <ValuePointer>(iterator) ((char''')this + offset)</ValuePointer>  </ArrayItems>  </Expand>  </Type>  <Type Name="QByteArray">  <DisplayString>{*d}</DisplayString>  </Type>  <!— More Qt5 types… —>  </AutoVisualizer> 

MS Visual Studio 2013

The ".natvis" files introduced in MSVS2012 received some additional attention in MSVS2013:

//blogs.msdn.com/b/vcblog/archive/2013/06/28/using-visual-studio-2013-to-write-maintainable-native-visualizations-natvis.aspx



zmj 2018-02-12 13:25 发表评论
]]>OpenGL学习脚印: 投媄矩阵和视口变换矩?math-projection and viewport matrix) - սƵ2019|սع//www.pppqb.icu/zmj/archive/2018/01/08/215464.htmlzmjzmjMon, 08 Jan 2018 06:13:00 GMT//www.pppqb.icu/zmj/archive/2018/01/08/215464.html//www.pppqb.icu/zmj/comments/215464.html//www.pppqb.icu/zmj/archive/2018/01/08/215464.html#Feedback0//www.pppqb.icu/zmj/comments/commentRss/215464.html//www.pppqb.icu/zmj/services/trackbacks/215464.html阅读全文

zmj 2018-01-08 14:13 发表评论
]]>
投媄与相机空?/title><link>//www.pppqb.icu/zmj/archive/2018/01/08/215463.html</link><dc:creator>zmj</dc:creator><author>zmj</author><pubDate>Mon, 08 Jan 2018 03:31:00 GMT</pubDate><guid>//www.pppqb.icu/zmj/archive/2018/01/08/215463.html</guid><wfw:comment>//www.pppqb.icu/zmj/comments/215463.html</wfw:comment><comments>//www.pppqb.icu/zmj/archive/2018/01/08/215463.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>//www.pppqb.icu/zmj/comments/commentRss/215463.html</wfw:commentRss><trackback:ping>//www.pppqb.icu/zmj/services/trackbacks/215463.html</trackback:ping><description><![CDATA[     摘要: //sighingnow.github.io/graphics/projection_and_camera.html投媄与相机空?nbsp;Published On August 14, 2015计算机屏q是2l的QOpenGL渲染?D场景必须?D形式的图像投影到屏幕上。透视投媄透视投媄能较好的使二l投影显C立体感Q因ZhD看物体符合透视原理。首先,所有顶点从眼坐?照相机坐?..  <a href='//www.pppqb.icu/zmj/archive/2018/01/08/215463.html'>阅读全文</a><img src ="//www.pppqb.icu/zmj/aggbug/215463.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="//www.pppqb.icu/zmj/" target="_blank">zmj</a> 2018-01-08 11:31 <a href="//www.pppqb.icu/zmj/archive/2018/01/08/215463.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>OpenCV Remapping - սƵ2019|սع//www.pppqb.icu/zmj/archive/2017/12/20/215434.htmlzmjzmjWed, 20 Dec 2017 09:44:00 GMT//www.pppqb.icu/zmj/archive/2017/12/20/215434.html//www.pppqb.icu/zmj/comments/215434.html//www.pppqb.icu/zmj/archive/2017/12/20/215434.html#Feedback0//www.pppqb.icu/zmj/comments/commentRss/215434.html//www.pppqb.icu/zmj/services/trackbacks/215434.html

https://docs.opencv.org/2.4/doc/tutorials/imgproc/imgtrans/remap/remap.html

Goal

In this tutorial you will learn how to:

  1. Use the OpenCV function remap to implement simple remapping routines.

Theory

What is remapping?

  • It is the process of taking pixels from one place in the image and locating them in another position in a new image.

  • To accomplish the mapping process, it might be necessary to do some interpolation for non-integer pixel locations, since there will not always be a one-to-one-pixel correspondence between source and destination images.

  • We can express the remap for every pixel location (x,y) as:

    g(x,y) = f ( h(x,y) )

    where g() is the remapped image, f() the source image and h(x,y) is the mapping function that operates on (x,y).

  • Let’s think in a quick example. Imagine that we have an image I and, say, we want to do a remap such that:

    h(x,y) = (I.cols - x, y )

    What would happen? It is easily seen that the image would flip in the x direction. For instance, consider the input image:

    Original test image

    observe how the red circle changes positions with respect to x (considering x the horizontal direction):

    Original test image
  • In OpenCV, the function remap offers a simple remapping implementation.

Code

  1. What does this program do?
    • Loads an image
    • Each second, apply 1 of 4 different remapping processes to the image and display them indefinitely in a window.
    • Wait for the user to exit the program
  2. The tutorial code’s is shown lines below. You can also download it from here
 #include "opencv2/highgui/highgui.hpp"  #include "opencv2/imgproc/imgproc.hpp"  #include <iostream>  #include <stdio.h>   using namespace cv;   /// Global variables  Mat src, dst;  Mat map_x, map_y;  char* remap_window = "Remap demo";  int ind = 0;   /// Function Headers  void update_map( void );   /**  * @function main  */  int main( int argc, char** argv )  {    /// Load the image    src = imread( argv[1], 1 );    /// Create dst, map_x and map_y with the same size as src:   dst.create( src.size(), src.type() );   map_x.create( src.size(), CV_32FC1 );   map_y.create( src.size(), CV_32FC1 );    /// Create window   namedWindow( remap_window, CV_WINDOW_AUTOSIZE );    /// Loop   while( true )   {     /// Each 1 sec. Press ESC to exit the program     int c = waitKey( 1000 );      if( (char)c == 27 )       { break; }      /// Update map_x & map_y. Then apply remap     update_map();     remap( src, dst, map_x, map_y, CV_INTER_LINEAR, BORDER_CONSTANT, Scalar(0,0, 0) );      /// Display results     imshow( remap_window, dst );   }   return 0;  }   /**  * @function update_map  * @brief Fill the map_x and map_y matrices with 4 types of mappings  */  void update_map( void )  {    ind = ind%4;     for( int j = 0; j < src.rows; j++ )    { for( int i = 0; i < src.cols; i++ )        {          switch( ind )          {            case 0:              if( i > src.cols*0.25 && i < src.cols*0.75 && j > src.rows*0.25 && j < src.rows*0.75 )                {                  map_x.at<float>(j,i) = 2*( i - src.cols*0.25 ) + 0.5 ;                  map_y.at<float>(j,i) = 2*( j - src.rows*0.25 ) + 0.5 ;                 }              else                { map_x.at<float>(j,i) = 0 ;                  map_y.at<float>(j,i) = 0 ;                }                  break;            case 1:                  map_x.at<float>(j,i) = i ;                  map_y.at<float>(j,i) = src.rows - j ;                  break;            case 2:                  map_x.at<float>(j,i) = src.cols - i ;                  map_y.at<float>(j,i) = j ;                  break;            case 3:                  map_x.at<float>(j,i) = src.cols - i ;                  map_y.at<float>(j,i) = src.rows - j ;                  break;          } // end of switch        }     }   ind++; } 

Explanation

  1. Create some variables we will use:

    Mat src, dst; Mat map_x, map_y; char* remap_window = "Remap demo"; int ind = 0; 
  2. Load an image:

    src = imread( argv[1], 1 ); 
  3. Create the destination image and the two mapping matrices (for x and y )

    dst.create( src.size(), src.type() ); map_x.create( src.size(), CV_32FC1 ); map_y.create( src.size(), CV_32FC1 ); 
  4. Create a window to display results

    namedWindow( remap_window, CV_WINDOW_AUTOSIZE ); 
  5. Establish a loop. Each 1000 ms we update our mapping matrices (mat_x and mat_y) and apply them to our source image:

    while( true ) {   /// Each 1 sec. Press ESC to exit the program   int c = waitKey( 1000 );    if( (char)c == 27 )     { break; }    /// Update map_x & map_y. Then apply remap   update_map();   remap( src, dst, map_x, map_y, CV_INTER_LINEAR, BORDER_CONSTANT, Scalar(0,0, 0) );    /// Display results   imshow( remap_window, dst ); } 

    The function that applies the remapping is remap. We give the following arguments:

    • src: Source image
    • dst: Destination image of same size as src
    • map_x: The mapping function in the x direction. It is equivalent to the first component of h(i,j)
    • map_y: Same as above, but in y direction. Note that map_y and map_x are both of the same size as src
    • CV_INTER_LINEAR: The type of interpolation to use for non-integer pixels. This is by default.
    • BORDER_CONSTANT: Default

    How do we update our mapping matrices mat_x and mat_y? Go on reading:

  6. Updating the mapping matrices: We are going to perform 4 different mappings:

    1. Reduce the picture to half its size and will display it in the middle:

      h(i,j) = ( 2*i - src.cols/2  + 0.5, 2*j - src.rows/2  + 0.5)

      for all pairs (i,j) such that: \dfrac{src.cols}{4}<i<\dfrac{3 \cdot src.cols}{4} and \dfrac{src.rows}{4}<j<\dfrac{3 \cdot src.rows}{4}

    2. Turn the image upside down: h( i, j ) = (i, src.rows - j)

    3. Reflect the image from left to right: h(i,j) = ( src.cols - i, j )

    4. Combination of b and c: h(i,j) = ( src.cols - i, src.rows - j )

This is expressed in the following snippet. Here, map_x represents the first coordinate of h(i,j) and map_y the second coordinate.

for( int j = 0; j < src.rows; j++ ) { for( int i = 0; i < src.cols; i++ )     {       switch( ind )       {         case 0:           if( i > src.cols*0.25 && i < src.cols*0.75 && j > src.rows*0.25 && j < src.rows*0.75 )             {               map_x.at<float>(j,i) = 2*( i - src.cols*0.25 ) + 0.5 ;               map_y.at<float>(j,i) = 2*( j - src.rows*0.25 ) + 0.5 ;              }           else             { map_x.at<float>(j,i) = 0 ;               map_y.at<float>(j,i) = 0 ;             }               break;         case 1:               map_x.at<float>(j,i) = i ;               map_y.at<float>(j,i) = src.rows - j ;               break;         case 2:               map_x.at<float>(j,i) = src.cols - i ;               map_y.at<float>(j,i) = j ;               break;         case 3:               map_x.at<float>(j,i) = src.cols - i ;               map_y.at<float>(j,i) = src.rows - j ;               break;       } // end of switch     }   }  ind++; } 

Result

  1. After compiling the code above, you can execute it giving as argument an image path. For instance, by using the following image:

    Original test image
  2. This is the result of reducing it to half the size and centering it:

    Result 0 for remapping
  3. Turning it upside down:

    Result 0 for remapping
  4. Reflecting it in the x direction:

    Result 0 for remapping
  5. Reflecting it in both directions:

Result 0 for remapping


zmj 2017-12-20 17:44 发表评论
]]>Understanding the View Matrix - սƵ2019|սع//www.pppqb.icu/zmj/archive/2017/11/20/215358.htmlzmjzmjMon, 20 Nov 2017 09:10:00 GMT//www.pppqb.icu/zmj/archive/2017/11/20/215358.html//www.pppqb.icu/zmj/comments/215358.html//www.pppqb.icu/zmj/archive/2017/11/20/215358.html#Feedback0//www.pppqb.icu/zmj/comments/commentRss/215358.html//www.pppqb.icu/zmj/services/trackbacks/215358.html阅读全文

zmj 2017-11-20 17:10 发表评论
]]>
How to tranform 2D image coordinates to 3D world coordinated with Z = 0? - սƵ2019|սع//www.pppqb.icu/zmj/archive/2017/11/17/215355.htmlzmjzmjFri, 17 Nov 2017 06:40:00 GMT//www.pppqb.icu/zmj/archive/2017/11/17/215355.html//www.pppqb.icu/zmj/comments/215355.html//www.pppqb.icu/zmj/archive/2017/11/17/215355.html#Feedback0//www.pppqb.icu/zmj/comments/commentRss/215355.html//www.pppqb.icu/zmj/services/trackbacks/215355.html//answers.opencv.org/question/150451/how-to-tranform-2d-image-coordinates-to-3d-world-coordinated-with-z-0/
https://github.com/opencv/opencv/issues/8762

Hi everyone, I currently working on my project which involves vehicle detection and tracking and estimating and optimizing a cuboid around the vehicle. For that I am taking the center of the detected vehicle and I need to find the 3D world coodinate of the point and then estimate the world coordinates of the edges of the cuboid and the project it back to the image to display it.
So, now I am new to computer vision and OpenCV, but in my knowledge, I just need 4 points on the image and need to know the world coordinates of those 4 points and use solvePNP in OpenCV to get the rotation and translation vectors (I already have the camera matrix and distortion coefficients). Then, I need to use Rodrigues to transform the rotation vector into a rotation matrix and then concatenate it with the translation vector to get my extrinsic matrix and then multiply the extrinsic matrix with the camera matrix to get my projection matrix. Since my z coordinate is zero, so I need to take off the third column from the projection matrix which gives the homography matrix for converting the 2D image points to 3D world points. Now, I find the inverse of the homography matrix which gives me the homography between the 3D world points to 2D image points. After that I multiply the image points [x, y, 1]t with the inverse homography matrix to get [wX, wY, w]t and the divide the entire vector by the scalar w to get [X, Y, 1] which gives me the X and Y values of the world coordinates.
My code is like this:
image_points.push_back(Point2d(275, 204));
image_points.push_back(Point2d(331, 204));
image_points.push_back(Point2d(331, 308));
image_points.push_back(Point2d(275, 308));
cout << "Image Points: " << image_points << endl << endl;
world_points.push_back(Point3d(0.0, 0.0, 0.0));
world_points.push_back(Point3d(1.775, 0.0, 0.0));
world_points.push_back(Point3d(1.775, 4.620, 0.0));
world_points.push_back(Point3d(0.0, 4.620, 0.0));
cout << "World Points: " << world_points << endl << endl;
solvePnP(world_points, image_points, cameraMatrix, distCoeffs, rotationVector, translationVector);
cout << "Rotation Vector: " << endl << rotationVector << endl << endl;
cout << "Translation Vector: " << endl << translationVector << endl << endl;
Rodrigues(rotationVector, rotationMatrix);
cout << "Rotation Matrix: " << endl << rotationMatrix << endl << endl;
hconcat(rotationMatrix, translationVector, extrinsicMatrix);
cout << "Extrinsic Matrix: " << endl << extrinsicMatrix << endl << endl;
projectionMatrix = cameraMatrix * extrinsicMatrix;
cout << "Projection Matrix: " << endl << projectionMatrix << endl << endl;
double p11 = projectionMatrix.at<double>(0, 0),
    p12 = projectionMatrix.at<double>(0, 1),
    p14 = projectionMatrix.at<double>(0, 3),
    p21 = projectionMatrix.at<double>(1, 0),
    p22 = projectionMatrix.at<double>(1, 1),
    p24 = projectionMatrix.at<double>(1, 3),
    p31 = projectionMatrix.at<double>(2, 0),
    p32 = projectionMatrix.at<double>(2, 1),
    p34 = projectionMatrix.at<double>(2, 3);
homographyMatrix = (Mat_<double>(3, 3) << p11, p12, p14, p21, p22, p24, p31, p32, p34);
cout << "Homography Matrix: " << endl << homographyMatrix << endl << endl;
inverseHomographyMatrix = homographyMatrix.inv();
cout << "Inverse Homography Matrix: " << endl << inverseHomographyMatrix << endl << endl;
Mat point2D = (Mat_<double>(3, 1) << image_points[0].x, image_points[0].y, 1);
cout << "First Image ...

https://github.com/opencv/opencv/issues/8762


  • OpenCV => 3.2
  • Operating System / Platform => Windows 64 Bit
  • Compiler => Visual Studio 2015

Hi everyone, I understand that this forum is to report bugs and not to ask questions but I already posted about my problems in answers.opencv.org without any useful response. I need to resolve my problem very urgently since my final year project deadline is approaching soon.

I am currently working on my project which involves vehicle detection and tracking and estimating and optimizing a cuboid around the vehicle. For that I have accomplished detection and tracking of vehicles and I need to find the 3-D world coordinates of the image points of the edges of the bounding boxes of the vehicles and then estimate the world coordinates of the edges of the cuboid and the project it back to the image to display it.

So, I am new to computer vision and OpenCV, but in my knowledge, I just need 4 points on the image and need to know the world coordinates of those 4 points and use solvePNP in OpenCV to get the rotation and translation vectors (I already have the camera matrix and distortion coefficients). Then, I need to use Rodrigues to transform the rotation vector into a rotation matrix and then concatenate it with the translation vector to get my extrinsic matrix and then multiply the extrinsic matrix with the camera matrix to get my projection matrix. Since my z coordinate is zero, so I need to take off the third column from the projection matrix which gives the homography matrix for converting the 2D image points to 3D world points. Now, I find the inverse of the homography matrix which gives me the homography between the 3D world points to 2D image points. After that I multiply the image points [x, y, 1]t with the inverse homography matrix to get [wX, wY, w]t and the divide the entire vector by the scalar w to get [X, Y, 1] which gives me the X and Y values of the world coordinates.

My code looks like this:

#include "opencv2/opencv.hpp" #include <stdio.h> #include <iostream> #include <sstream> #include <math.h> #include <conio.h>  using namespace cv; using namespace std;  Mat cameraMatrix, distCoeffs, rotationVector, rotationMatrix, translationVector, extrinsicMatrix, projectionMatrix, homographyMatrix, inverseHomographyMatrix;   Point point; vector<Point2d> image_points; vector<Point3d> world_points;  int main() {     FileStorage fs1("intrinsics.yml", FileStorage::READ);     fs1["camera_matrix"] >> cameraMatrix;    cout << "Camera Matrix: " << cameraMatrix << endl << endl;     fs1["distortion_coefficients"] >> distCoeffs;    cout << "Distortion Coefficients: " << distCoeffs << endl << endl;          image_points.push_back(Point2d(275, 204));    image_points.push_back(Point2d(331, 204));    image_points.push_back(Point2d(331, 308));    image_points.push_back(Point2d(275, 308));     cout << "Image Points: " << image_points << endl << endl;     world_points.push_back(Point3d(0.0, 0.0, 0.0));    world_points.push_back(Point3d(1.775, 0.0, 0.0));    world_points.push_back(Point3d(1.775, 4.620, 0.0));    world_points.push_back(Point3d(0.0, 4.620, 0.0));     cout << "World Points: " << world_points << endl << endl;     solvePnP(world_points, image_points, cameraMatrix, distCoeffs, rotationVector, translationVector);    cout << "Rotation Vector: " << endl << rotationVector << endl << endl;    cout << "Translation Vector: " << endl << translationVector << endl << endl;     Rodrigues(rotationVector, rotationMatrix);    cout << "Rotation Matrix: " << endl << rotationMatrix << endl << endl;     hconcat(rotationMatrix, translationVector, extrinsicMatrix);    cout << "Extrinsic Matrix: " << endl << extrinsicMatrix << endl << endl;     projectionMatrix = cameraMatrix * extrinsicMatrix;    cout << "Projection Matrix: " << endl << projectionMatrix << endl << endl;     double p11 = projectionMatrix.at<double>(0, 0),    	p12 = projectionMatrix.at<double>(0, 1),    	p14 = projectionMatrix.at<double>(0, 3),    	p21 = projectionMatrix.at<double>(1, 0),    	p22 = projectionMatrix.at<double>(1, 1),    	p24 = projectionMatrix.at<double>(1, 3),    	p31 = projectionMatrix.at<double>(2, 0),    	p32 = projectionMatrix.at<double>(2, 1),    	p34 = projectionMatrix.at<double>(2, 3);      homographyMatrix = (Mat_<double>(3, 3) << p11, p12, p14, p21, p22, p24, p31, p32, p34);    cout << "Homography Matrix: " << endl << homographyMatrix << endl << endl;     inverseHomographyMatrix = homographyMatrix.inv();    cout << "Inverse Homography Matrix: " << endl << inverseHomographyMatrix << endl << endl;     Mat point2D = (Mat_<double>(3, 1) << image_points[0].x, image_points[0].y, 1);    cout << "First Image Point" << point2D << endl << endl;     Mat point3Dw = inverseHomographyMatrix*point2D;    cout << "Point 3D-W : " << point3Dw << endl << endl;     double w = point3Dw.at<double>(2, 0);    cout << "W: " << w << endl << endl;     Mat matPoint3D;    divide(w, point3Dw, matPoint3D);     cout << "Point 3D: " << matPoint3D << endl << endl;     _getch();    return 0; }

I have got the image coordinates of the four known world points and hard-coded it for simplification.image_points contain the image coordinates of the four points and world_points contain the world coordinates of the four points. I am considering the the first world point as the origin (0, 0, 0) in the world axis and using known distance calculating the coordinates of the other four points. Now after calculating the inverse homography matrix, I multiplied it with [image_points[0].x, image_points[0].y, 1]t which is related to the world coordinate (0, 0, 0). Then I divide the result by the third component w to get [X, Y, 1]. But after printing out the values of X and Y, it turns out they are not 0, 0 respectively. What am doing wrong?

The output of my code is like this:

Camera Matrix: [517.0036881709533, 0, 320;  0, 517.0036881709533, 212;  0, 0, 1]  Distortion Coefficients: [0.1128663679798094;  -1.487790079922432;  0;  0;  2.300571896761067]  Image Points: [275, 204;  331, 204;  331, 308;  275, 308]  World Points: [0, 0, 0;  1.775, 0, 0;  1.775, 4.62, 0;  0, 4.62, 0]  Rotation Vector: [0.661476468596541;  -0.02794460022559267;  0.01206996342819649]  Translation Vector: [-1.394495345140898;  -0.2454153722672731;  15.47126945512652]  Rotation Matrix: [0.9995533907649279, -0.02011656447351923, -0.02209848058392758;  0.002297501163799448, 0.7890323093017149, -0.6143474069013439;  0.02979497438726573, 0.6140222623910194, 0.7887261380159]  Extrinsic Matrix: [0.9995533907649279, -0.02011656447351923, -0.02209848058392758, -1.394495345140898;  0.002297501163799448, 0.7890323093017149, -0.6143474069013439, -0.2454153722672731;  0.02979497438726573, 0.6140222623910194, 0.7887261380159, 15.47126945512652]  Projection Matrix: [526.3071813531748, 186.086785938988, 240.9673682002232, 4229.846989065414;  7.504351145361707, 538.1053336219271, -150.4099339268854, 3153.028471890794;  0.02979497438726573, 0.6140222623910194, 0.7887261380159, 15.47126945512652]  Homography Matrix: [526.3071813531748, 186.086785938988, 4229.846989065414;  7.504351145361707, 538.1053336219271, 3153.028471890794;  0.02979497438726573, 0.6140222623910194, 15.47126945512652]  Inverse Homography Matrix: [0.001930136511648154, -8.512427241879318e-05, -0.5103513244724983;  -6.693679705844383e-06, 0.00242178892313387, -0.4917279870709287;  -3.451449134581896e-06, -9.595179260534558e-05, 0.08513443835773901]  First Image Point[275;  204;  1]  Point 3D-W : [0.003070864657310213;  0.0004761913292736786;  0.06461112415423849]  W: 0.0646111  Point 3D: [21.04004290792539;  135.683117651025;  1] 







zmj 2017-11-17 14:40 发表评论
]]>
CSE/EE486 Computer Vision I - սƵ2019|սع//www.pppqb.icu/zmj/archive/2017/11/17/215354.htmlzmjzmjFri, 17 Nov 2017 05:46:00 GMT//www.pppqb.icu/zmj/archive/2017/11/17/215354.html//www.pppqb.icu/zmj/comments/215354.html//www.pppqb.icu/zmj/archive/2017/11/17/215354.html#Feedback0//www.pppqb.icu/zmj/comments/commentRss/215354.html//www.pppqb.icu/zmj/services/trackbacks/215354.html//www.cse.psu.edu/~rtc12/CSE486/
https://stackoverflow.com/questions/10163034/how-can-i-calculate-camera-position-by-comparing-two-photographs

Background

I have taught this course several times (almost every semester). I am always fiddling around with the course content, so the material covered and the order of presentation changes from semester to semester. Below are the lecture notes from Fall 2007. 

In addition to slides that I created, I borrowed heavily from other lecturers whose computer vision slides are on the web. I used to put an attribution at the bottom of each slide as to where and who it came from. However, that led to cluttered slides, and was distracting. So, I dropped that format. Instead, I'm telling you up-front that a lot of the slides in the lectures below did not originate from me. Here is a partial list of the main sources that I can remember: Octavia Camps, Forsyth and Ponce, David Jacobs, Steve Seitz, Chuck Dyer, Martial Hebert. If I forgot you, and you see your slides here, well... thanks. And drop me a line so I can add your name to the list. 

By the same token, if you are putting together a computer vision course, and want to use some of my slides, go right ahead. You are welcome to them, since the main goal here is to improve the quality of computer vision education everywhere. To quote Thomas Jefferson: "He who receives an idea from me, receives instruction himself without lessening mine; as he who lights his taper at mine, receives light without darkening me. That ideas should freely spread from one to another over the globe, for the moral and mutual instruction of man, and improvement of his condition, seems to have been peculiarly and benevolently designed by nature, when she made them, like fire, expansible over all space, without lessening their density at any point, and like the air in which we breathe, move, and have our physical being, incapable of confinement or exclusive appropriation." Jefferson was one awesome dude.

Fall 2007 Lecture Notes

Detailed List of Topics Covered in Fall 2007 

Lecture 01: Intro to Computer Visionslides6 per page
Lecture 02: Intensity Surfaces and Gradientsslides6 per page
Lecture 03: Linear Operators and Convolutionslides6 per page
Lecture 04: Smoothingslides6 per page
Lecture 05: Edge Detectionslides6 per page
Lecture 06: Corner Detectionslides6 per page
Lecture 07: Template Matchingslides6 per page
Lecture 08: Introduction to Stereoslides6 per page
Lecture 09: Stereo Algorithmsslides6 per page
Lecture 10: Image Pyramidsslides6 per page
Lecture 11: LoG Edge and Blob Findingslides6 per page
Lecture 12: Camera Projection (Extrinsics)slides6 per page
Lecture 13: Camera Projection (Intrinsics)slides6 per page
Lecture 14: Parameter Estimation; Image Warpingslides6 per page
Lecture 15: Robust Estimation: RANSACslides6 per page
Lecture 16: Planar Homographiesslides6 per page
Lecture 17: Stabilization and Mosaicingslides6 per page
Lecture 18: Generalized Stereoslides6 per page
Lecture 19: Essential and Fundamental Matricesslides6 per page
Lecture 20: The 8-point algorithmslides6 per page
Lecture 21: Stereo Reconstructionslides6 per page
Lecture 22: Camera Motion Fieldslides6 per page
Lecture 23: Optic Flowslides6 per page
Lecture 24: Video Change Detectionslides6 per page
Lecture 25: Structure From Motion (SFM)slides6 per page
Lecture 26: Color and Lightslides6 per page
Lecture 27: Application: Skin Colorslides6 per page
Lecture 28: Intro to Trackingslides6 per page
Lecture 29: Video Tracking: Mean-shiftslides6 per page
Lecture 30: Video Tracking: Lucas-Kanadeslides6 per page
Lecture 31: Object Recognition : SIFT Keysslides6 per page
Lecture 32: Object Recognition : PCA / Eigenfacesslides6 per page


zmj 2017-11-17 13:46 发表评论
]]>
鱼眼相机标定以及OpenCV实现 - սƵ2019|սع//www.pppqb.icu/zmj/archive/2017/11/16/215351.htmlzmjzmjThu, 16 Nov 2017 01:55:00 GMT//www.pppqb.icu/zmj/archive/2017/11/16/215351.html//www.pppqb.icu/zmj/comments/215351.html//www.pppqb.icu/zmj/archive/2017/11/16/215351.html#Feedback0//www.pppqb.icu/zmj/comments/commentRss/215351.html//www.pppqb.icu/zmj/services/trackbacks/215351.html阅读全文

zmj 2017-11-16 09:55 发表评论
]]>
Matlab下蝲 - սƵ2019|սع//www.pppqb.icu/zmj/archive/2017/11/14/215347.htmlzmjzmjTue, 14 Nov 2017 08:53:00 GMT//www.pppqb.icu/zmj/archive/2017/11/14/215347.html//www.pppqb.icu/zmj/comments/215347.html//www.pppqb.icu/zmj/archive/2017/11/14/215347.html#Feedback0//www.pppqb.icu/zmj/comments/commentRss/215347.html//www.pppqb.icu/zmj/services/trackbacks/215347.html
//www.ilovematlab.com/thread-526724-1-1.html?s_tid=LandingPageTabqa

//blog.sina.com.cn/s/blog_14d1511ee0102wxi4.html
Matlab2017a
链接: https://pan.baidu.com/s/1gflAa2Z 密码: fwrx
软g安装教程链接Q//t.cn/RVTJgqZ

g亲测的安装教E在q里Q觉得有用的话ؓ我写的百度经验点个赞?^_^
//jingyan.baidu.com/article/ac6a9a5e0e67652b653eacc2.html

===================================================
Matlab2016b?
安装包链接://pan.baidu.com/s/1mhUrAEO 密码Q?oo0??
破解crack?
链接Q//pan.baidu.com/s/1hsDLdVQ 密码Qzggs?
Matlab2016a
链接Q//pan.baidu.com/s/1miwD828 密码Qtt7s
Matlab2015a
链接Q//pan.baidu.com/s/1dEMZYud 密码Qlfg0
Matlab2014a
链接Q//pan.baidu.com/s/1mihe2xi 密码Q?ps0
Matlab2013a
链接Q//pan.baidu.com/s/1qYnbXW4 密码Qc7me
Matlab2012a
链接Q//pan.baidu.com/s/1qYKlW2C 密码Qfunt
Matlab2011a
链接Q//pan.baidu.com/s/1eSLmv1w 密码Q?acg
Matlab2010a
链接Q//pan.baidu.com/s/1eSr0fiq 密码Qf83e
Matlab2009a
链接Q//pan.baidu.com/s/1kUKLT5P 密码Qormj
Matlab2008a
链接Q//pan.baidu.com/s/1nvAiGBn 密码Qiogy



zmj 2017-11-14 16:53 发表评论
]]>
Camera calibration With OpenCV - սƵ2019|սع//www.pppqb.icu/zmj/archive/2017/11/10/215343.htmlzmjzmjFri, 10 Nov 2017 08:57:00 GMT//www.pppqb.icu/zmj/archive/2017/11/10/215343.html//www.pppqb.icu/zmj/comments/215343.html//www.pppqb.icu/zmj/archive/2017/11/10/215343.html#Feedback0//www.pppqb.icu/zmj/comments/commentRss/215343.html//www.pppqb.icu/zmj/services/trackbacks/215343.html阅读全文

zmj 2017-11-10 16:57 发表评论
]]>
OpenCV detect partial circle with noise - սƵ2019|սع//www.pppqb.icu/zmj/archive/2017/10/17/215303.htmlzmjzmjTue, 17 Oct 2017 05:39:00 GMT//www.pppqb.icu/zmj/archive/2017/10/17/215303.html//www.pppqb.icu/zmj/comments/215303.html//www.pppqb.icu/zmj/archive/2017/10/17/215303.html#Feedback0//www.pppqb.icu/zmj/comments/commentRss/215303.html//www.pppqb.icu/zmj/services/trackbacks/215303.htmlhttps://stackoverflow.com/questions/26222525/opencv-detect-partial-circle-with-noise

using this as input (your own median filtered image (I've just cropped it):

enter image description here

First I "normalize" the image. I just stretch values, that smallest val is 0 and biggest val is 255, leading to this result: (maybe some real contrast enhancement is better)

enter image description here

after that I compute the threshold of that image with some fixed threshold (you might need to edit that and find a way to choose the threshold dynamically! a better contrast enhancement might help there)

enter image description here

from this image, I use some simple RANSAC circle detection(very similar to my answer in the linked semi-circle detection question), giving you this result as a best semi-sircle:

enter image description here

int main()


{

    //cv::Mat color = cv::imread("../inputData/semi_circle_contrast.png");

    cv::Mat color = cv::imread("../inputData/semi_circle_median.png");

    cv::Mat gray;

 

    // convert to grayscale

    cv::cvtColor(color, gray, CV_BGR2GRAY);

 

    // now map brightest pixel to 255 and smalles pixel val to 0. this is for easier finding of threshold

    double min, max;

    cv::minMaxLoc(gray,&min,&max);

    float sub = min;

    float mult = 255.0f/(float)(max-sub);

    cv::Mat normalized = gray - sub;

    normalized = mult * normalized;

    cv::imshow("normalized" , normalized);

    //--------------------------------

 

 

    // now compute threshold

    // TODO: this might ne a tricky task if noise differs...

    cv::Mat mask;

    //cv::threshold(input, mask, 0, 255, CV_THRESH_BINARY | CV_THRESH_OTSU);

    cv::threshold(normalized, mask, 100, 255, CV_THRESH_BINARY);

 

 

 

    std::vector<cv::Point2f> edgePositions;

    edgePositions = getPointPositions(mask);

 

    // create distance transform to efficiently evaluate distance to nearest edge

    cv::Mat dt;

    cv::distanceTransform(255-mask, dt,CV_DIST_L1, 3);

 

    //TODO: maybe seed random variable for real random numbers.

 

    unsigned int nIterations = 0;

 

    cv::Point2f bestCircleCenter;

    float bestCircleRadius;

    float bestCirclePercentage = 0;

    float minRadius = 50;   // TODO: ADJUST THIS PARAMETER TO YOUR NEEDS, otherwise smaller circles wont be detected or "small noise circles" will have a high percentage of completion

 

    //float minCirclePercentage = 0.2f;

    float minCirclePercentage = 0.05f;  // at least 5% of a circle must be present? maybe more...

 

    int maxNrOfIterations = edgePositions.size();   // TODO: adjust this parameter or include some real ransac criteria with inlier/outlier percentages to decide when to stop

 

    for(unsigned int its=0; its< maxNrOfIterations; ++its)

    {

        //RANSAC: randomly choose 3 point and create a circle:

        //TODO: choose randomly but more intelligent,

        //so that it is more likely to choose three points of a circle.

        //For example if there are many small circles, it is unlikely to randomly choose 3 points of the same circle.

        unsigned int idx1 = rand()%edgePositions.size();

        unsigned int idx2 = rand()%edgePositions.size();

        unsigned int idx3 = rand()%edgePositions.size();

 

        // we need 3 different samples:

        if(idx1 == idx2) continue;

        if(idx1 == idx3) continue;

        if(idx3 == idx2) continue;

 

        // create circle from 3 points:

        cv::Point2f center; float radius;

        getCircle(edgePositions[idx1],edgePositions[idx2],edgePositions[idx3],center,radius);

 

        // inlier set unused at the moment but could be used to approximate a (more robust) circle from alle inlier

        std::vector<cv::Point2f> inlierSet;

 

        //verify or falsify the circle by inlier counting:

        float cPerc = verifyCircle(dt,center,radius, inlierSet);

 

        // update best circle information if necessary

        if(cPerc >= bestCirclePercentage)

            if(radius >= minRadius)

        {

            bestCirclePercentage = cPerc;

            bestCircleRadius = radius;

            bestCircleCenter = center;

        }

 

    }

 

    // draw if good circle was found

    if(bestCirclePercentage >= minCirclePercentage)

        if(bestCircleRadius >= minRadius);

        cv::circle(color, bestCircleCenter,bestCircleRadius, cv::Scalar(255,255,0),1);

 

 

        cv::imshow("output",color);

        cv::imshow("mask",mask);

        cv::waitKey(0);

 

        return 0;

    }

 

float verifyCircle(cv::Mat dt, cv::Point2f center, float radius, std::vector<cv::Point2f> & inlierSet)
{
 unsigned int counter = 0;
 unsigned int inlier = 0;
 float minInlierDist = 2.0f;
 float maxInlierDistMax = 100.0f;
 float maxInlierDist = radius/25.0f;
 if(maxInlierDist<minInlierDist) maxInlierDist = minInlierDist;
 if(maxInlierDist>maxInlierDistMax) maxInlierDist = maxInlierDistMax;
 
 // choose samples along the circle and count inlier percentage
 for(float t =0; t<2*3.14159265359f; t+= 0.05f)
 {
     counter++;
     float cX = radius*cos(t) + center.x;
     float cY = radius*sin(t) + center.y;
 
     if(cX < dt.cols)
     if(cX >= 0)
     if(cY < dt.rows)
     if(cY >= 0)
     if(dt.at<float>(cY,cX) < maxInlierDist)
     {
        inlier++;
        inlierSet.push_back(cv::Point2f(cX,cY));
     }
 }
 
 return (float)inlier/float(counter);
}
 
 
inline void getCircle(cv::Point2f& p1,cv::Point2f& p2,cv::Point2f& p3, cv::Point2f& center, float& radius)
{
  float x1 = p1.x;
  float x2 = p2.x;
  float x3 = p3.x;
 
  float y1 = p1.y;
  float y2 = p2.y;
  float y3 = p3.y;
 
  // PLEASE CHECK FOR TYPOS IN THE FORMULA :)
  center.x = (x1*x1+y1*y1)*(y2-y3) + (x2*x2+y2*y2)*(y3-y1) + (x3*x3+y3*y3)*(y1-y2);
  center.x /= ( 2*(x1*(y2-y3) - y1*(x2-x3) + x2*y3 - x3*y2) );
 
  center.y = (x1*x1 + y1*y1)*(x3-x2) + (x2*x2+y2*y2)*(x1-x3) + (x3*x3 + y3*y3)*(x2-x1);
  center.y /= ( 2*(x1*(y2-y3) - y1*(x2-x3) + x2*y3 - x3*y2) );
 
  radius = sqrt((center.x-x1)*(center.x-x1) + (center.y-y1)*(center.y-y1));
}
 
 
 
std::vector<cv::Point2f> getPointPositions(cv::Mat binaryImage)
{
 std::vector<cv::Point2f> pointPositions;
 
 for(unsigned int y=0; y<binaryImage.rows; ++y)
 {
     //unsigned char* rowPtr = binaryImage.ptr<unsigned char>(y);
     for(unsigned int x=0; x<binaryImage.cols; ++x)
     {
         //if(rowPtr[x] > 0) pointPositions.push_back(cv::Point2i(x,y));
         if(binaryImage.at<unsigned char>(y,x) > 0) pointPositions.push_back(cv::Point2f(x,y));
     }
 }
 
 return pointPositions;
}

 



zmj 2017-10-17 13:39 发表评论
]]>
Geometric Transformations of Images - սƵ2019|սع//www.pppqb.icu/zmj/archive/2017/10/12/215293.htmlzmjzmjThu, 12 Oct 2017 07:28:00 GMT//www.pppqb.icu/zmj/archive/2017/10/12/215293.html//www.pppqb.icu/zmj/comments/215293.html//www.pppqb.icu/zmj/archive/2017/10/12/215293.html#Feedback0//www.pppqb.icu/zmj/comments/commentRss/215293.html//www.pppqb.icu/zmj/services/trackbacks/215293.htmlhttps://docs.opencv.org/3.0-beta/doc/py_tutorials/py_imgproc/py_geometric_transformations/py_geometric_transformations.html

Goals

  • Learn to apply different geometric transformation to images like translation, rotation, affine transformation etc.
  • You will see these functions: cv2.getPerspectiveTransform

Transformations

OpenCV provides two transformation functions, cv2.warpAffine and cv2.warpPerspective, with which you can have all kinds of transformations. cv2.warpAffine takes a 2x3 transformation matrix while cv2.warpPerspective takes a 3x3 transformation matrix as input.

Scaling

Scaling is just resizing of the image. OpenCV comes with a function cv2.resize() for this purpose. The size of the image can be specified manually, or you can specify the scaling factor. Different interpolation methods are used. Preferable interpolation methods are cv2.INTER_AREA for shrinking and cv2.INTER_CUBIC (slow) & cv2.INTER_LINEAR for zooming. By default, interpolation method used is cv2.INTER_LINEAR for all resizing purposes. You can resize an input image either of following methods:

import cv2 import numpy as np  img = cv2.imread('messi5.jpg')  res = cv2.resize(img,None,fx=2, fy=2, interpolation = cv2.INTER_CUBIC)  #OR  height, width = img.shape[:2] res = cv2.resize(img,(2*width, 2*height), interpolation = cv2.INTER_CUBIC) 

Translation

Translation is the shifting of object’s location. If you know the shift in (x,y) direction, let it be (t_x,t_y), you can create the transformation matrix \textbf{M} as follows:

M = \begin{bmatrix} 1 & 0 & t_x \\ 0 & 1 & t_y  \end{bmatrix}

You can take make it into a Numpy array of type np.float32 and pass it into cv2.warpAffine() function. See below example for a shift of (100,50):

import cv2 import numpy as np  img = cv2.imread('messi5.jpg',0) rows,cols = img.shape  M = np.float32([[1,0,100],[0,1,50]]) dst = cv2.warpAffine(img,M,(cols,rows))  cv2.imshow('img',dst) cv2.waitKey(0) cv2.destroyAllWindows() 

Warning

 

Third argument of the cv2.warpAffine() function is the size of the output image, which should be in the form of (width, height). Remember width = number of columns, and height = number of rows.

See the result below:

Translation

Rotation

Rotation of an image for an angle \theta is achieved by the transformation matrix of the form

M = \begin{bmatrix} cos\theta & -sin\theta \\ sin\theta & cos\theta   \end{bmatrix}

But OpenCV provides scaled rotation with adjustable center of rotation so that you can rotate at any location you prefer. Modified transformation matrix is given by

\begin{bmatrix} \alpha &  \beta & (1- \alpha )  \cdot center.x -  \beta \cdot center.y \\ - \beta &  \alpha &  \beta \cdot center.x + (1- \alpha )  \cdot center.y \end{bmatrix}

where:

\begin{array}{l} \alpha =  scale \cdot \cos \theta , \\ \beta =  scale \cdot \sin \theta \end{array}

To find this transformation matrix, OpenCV provides a function, cv2.getRotationMatrix2D. Check below example which rotates the image by 90 degree with respect to center without any scaling.

img = cv2.imread('messi5.jpg',0) rows,cols = img.shape  M = cv2.getRotationMatrix2D((cols/2,rows/2),90,1) dst = cv2.warpAffine(img,M,(cols,rows)) 

See the result:

Rotation of Image

Affine Transformation

In affine transformation, all parallel lines in the original image will still be parallel in the output image. To find the transformation matrix, we need three points from input image and their corresponding locations in output image. Then cv2.getAffineTransform will create a 2x3 matrix which is to be passed to cv2.warpAffine.

Check below example, and also look at the points I selected (which are marked in Green color):

img = cv2.imread('drawing.png') rows,cols,ch = img.shape  pts1 = np.float32([[50,50],[200,50],[50,200]]) pts2 = np.float32([[10,100],[200,50],[100,250]])  M = cv2.getAffineTransform(pts1,pts2)  dst = cv2.warpAffine(img,M,(cols,rows))  plt.subplot(121),plt.imshow(img),plt.title('Input') plt.subplot(122),plt.imshow(dst),plt.title('Output') plt.show() 

See the result:

Affine Transformation

Perspective Transformation

For perspective transformation, you need a 3x3 transformation matrix. Straight lines will remain straight even after the transformation. To find this transformation matrix, you need 4 points on the input image and corresponding points on the output image. Among these 4 points, 3 of them should not be collinear. Then transformation matrix can be found by the function cv2.getPerspectiveTransform. Then apply cv2.warpPerspective with this 3x3 transformation matrix.

See the code below:

img = cv2.imread('sudokusmall.png') rows,cols,ch = img.shape  pts1 = np.float32([[56,65],[368,52],[28,387],[389,390]]) pts2 = np.float32([[0,0],[300,0],[0,300],[300,300]])  M = cv2.getPerspectiveTransform(pts1,pts2)  dst = cv2.warpPerspective(img,M,(300,300))  plt.subplot(121),plt.imshow(img),plt.title('Input') plt.subplot(122),plt.imshow(dst),plt.title('Output') plt.show() 

Result:

Perspective Transformation

Additional Resources

  1. “Computer Vision: Algorithms and Applications”, Richard Szeliski

Exercises

Help and Feedback

You did not find what you were looking for?
  • Ask a question on the Q&A forum.
  • If you think something is missing or wrong in the documentation, please file a bug report.


zmj 2017-10-12 15:28 发表评论
]]>
Blob Detection Using OpenCV ( Python, C++ ) - սƵ2019|սع//www.pppqb.icu/zmj/archive/2017/10/11/215289.htmlzmjzmjWed, 11 Oct 2017 07:20:00 GMT//www.pppqb.icu/zmj/archive/2017/10/11/215289.html//www.pppqb.icu/zmj/comments/215289.html//www.pppqb.icu/zmj/archive/2017/10/11/215289.html#Feedback0//www.pppqb.icu/zmj/comments/commentRss/215289.html//www.pppqb.icu/zmj/services/trackbacks/215289.html阅读全文

zmj 2017-10-11 15:20 发表评论
]]>
Explained: How does a soccer ball swerve? - սƵ2019|սع//www.pppqb.icu/zmj/archive/2017/10/10/215285.htmlzmjzmjTue, 10 Oct 2017 09:32:00 GMT//www.pppqb.icu/zmj/archive/2017/10/10/215285.html//www.pppqb.icu/zmj/comments/215285.html//www.pppqb.icu/zmj/archive/2017/10/10/215285.html#Feedback0//www.pppqb.icu/zmj/comments/commentRss/215285.html//www.pppqb.icu/zmj/services/trackbacks/215285.htmlhttps://news.mit.edu/2014/explained-how-does-soccer-ball-swerve-0617

The smoothness of a ball’s surface — in addition to playing technique — is a critical factor.

It happens every four years: The World Cup begins and some of the world’s most skilled players carefully line up free kicks, take aim — and shoot way over the goal.

The players are all trying to bend the ball into a top corner of the goal, often over a wall of defensive players and away from the reach of a lunging goalkeeper. Yet when such shots go awry in the World Cup, a blame game usually sets in. Players, fans, and pundits all suggest that the new official tournament ball, introduced every four years, is the cause.

Many of the people saying that may be seeking excuses. And yet scholars do think that subtle variations among soccer balls affect how they fly. Specifically, researchers increasingly believe that one variable really does differentiate soccer balls: their surfaces. It is harder to control a smoother ball, such as the much-discussed “Jabulani” used at the 2010 World Cup. The new ball used at this year’s tournament in Brazil, the “Brazuca,” has seams that are over 50 percent longer, one factor that makes the ball less smooth and apparently more predictable in flight.

“The details of the flow of air around the ball are complicated, and in particular they depend on how rough the ball is,” says John Bush, a professor of applied mathematics at MIT and the author of a recently published article about the aerodynamics of soccer balls. “If the ball is perfectly smooth, it bends the wrong way.”

By the “wrong way,” Bush means that two otherwise similar balls struck precisely the same way, by the same player, can actually curve in opposite directions, depending on the surface of those balls. Sound surprising?

Magnus, meet Messi

It may, because the question of how a spinning ball curves in flight would seem to have a textbook answer: the Magnus Effect. This phenomenon was first described by Isaac Newton, who noticed that in tennis, topspin causes a ball to dip, while backspin flattens out its trajectory. A curveball in baseball is another example from sports: A pitcher throws the ball with especially tight topspin, or sidespin rotation, and the ball curves in the direction of the spin.

In soccer, the same thing usually occurs with free kicks, corner kicks, crosses from the wings, and other kinds of passes or shots: The player kicking the ball applies spin during contact, creating rotation that makes the ball curve. For a right-footed player, the “natural” technique is to brush toward the outside of the ball, creating a shot or pass with a right-to-left hook; a left-footed player’s “natural” shot will curl left-to-right.

So far, so intuitive: Soccer fans can probably conjure the image of stars like Lionel Messi, Andrea Pirlo, or Marta, a superstar of women’s soccer, doing this. But this kind of shot — the Brazilians call it the “chute de curva” — depends on a ball with some surface roughness. Without that, this classic piece of the soccer player’s arsenal goes away, as Bush points out in his article, “The Aerodynamics of the Beautiful Game,” from the volume “Sports Physics,” published by Les Editions de L’Ecole Polytechnique in France.

“The fact is that the Magnus Effect can change sign,” Bush says. “People don’t generally appreciate that fact.” Given an absolutely smooth ball, the direction of the curve may reverse: The same kicking motion will not produce a shot or pass curving in a right-to-left direction, but in a left-to-right direction.


In the above animation, a player strikes two balls: one smooth, and one with an elastic band wrapped around its equator. Both balls are struck with his instep so as to impart a counterclockwise spin. However, the smooth ball bends in the opposite direction as the banded ball. The presence of the elastic band changes the boundary layer on the ball surface from “laminar" to “turbulent." This is why all soccer balls have some surface roughness; otherwise, they would bend in the opposite direction as the ball's initial rotation. (Courtesy of the researchers.)

Why is this? Bush says it is due to the way the surface of the ball creates motion at the “boundary layer” between the spinning ball and the air. The rougher the ball, the easier it is to create the textbook version of the Magnus Effect, with a “positive” sign: The ball curves in the expected direction.

“The boundary layer can be laminar, which is smoothly flowing, or turbulent, in which case you have eddies,” Bush says. “The boundary layer is changing from laminar to turbulent at different spots according to how quickly the ball is spinning. Where that transition arises is influenced by the surface roughness, the stitching of the ball. If you change the patterning of the panels, the transition points move, and the pressure distribution changes.” The Magnus Effect can then have a “negative” sign.

From Brazil: The “dove without wings”

If the reversing of the Magnus Effect has largely eluded detection, of course, that is because soccer balls are not absolutely smooth — but they have been moving in that direction over the decades. While other sports, such as baseball and cricket, have strict rules about the stitching on the ball, soccer does not, and advances in technology have largely given balls sleeker, smoother designs — until the introduction of the Brazuca, at least.

There is actually a bit more to the story, however, since sometimes players will strike balls so as to give them very little spin — the equivalent of a knuckleball in baseball. In this case, the ball flutters unpredictably from side to side. Brazilians have a name for this: the “pombo sem asa,” or “dove without wings.”

In this case, Bush says, “The peculiar motion of a fluttering free kick arises because the points of boundary-layer transition are different on opposite sides of the ball.” Because the ball has no initial spin, the motion of the surrounding air has more of an effect on the ball’s flight: “A ball that’s knuckling … is moving in response to the pressure distribution, which is constantly changing.” Indeed, a free kick Pirlo took in Italy’s match against England on Saturday, which fooled the goalkeeper but hit the crossbar, demonstrated this kind of action.

Bush’s own interest in the subject arises from being a lifelong soccer player and fan — the kind who, sitting in his office, will summon up clips of the best free-kick takers he’s seen. These include Juninho Pernambucano, a Brazilian midfielder who played at the 2006 World Cup, and Sinisa Mihajlovic, a Serbian defender of the 1990s.

And Bush happily plays a clip of Brazilian fullback Roberto Carlos’ famous free kick from a 1997 match against France, where the player used the outside of his left foot — but deployed the “positive” Magnus Effect — to score on an outrageously bending free kick.  

“That was by far the best free kick ever taken,” Bush says. Putting on his professor’s hat for a moment, he adds: “I think it’s important to encourage people to try to understand everything. Even in the most commonplace things, there is subtle and interesting physics.”



zmj 2017-10-10 17:32 发表评论
]]>
Throwing a football, Part II - սƵ2019|սع//www.pppqb.icu/zmj/archive/2017/09/24/215261.htmlzmjzmjSun, 24 Sep 2017 05:32:00 GMT//www.pppqb.icu/zmj/archive/2017/09/24/215261.html//www.pppqb.icu/zmj/comments/215261.html//www.pppqb.icu/zmj/archive/2017/09/24/215261.html#Feedback0//www.pppqb.icu/zmj/comments/commentRss/215261.html//www.pppqb.icu/zmj/services/trackbacks/215261.htmlhttps://www.wired.com/2008/12/throwing-a-football-part-ii/

IN PART I of this post, I talked about the basics of projectile motion with no air resistance. Also in that post, I showed that (without air resistance) the angle to throw a ball for maximum range is 45 degrees. When throwing a football, there is some air resistance this means that 45 degree is not necessarily the angle for the greatest range. Well, can’t I just do the same thing as before? It turns out that it is a significantly different problem when air resistance is added. Without air resistance, the acceleration was constant. Not so now, my friend.

The problem is that air resistance depends on the velocity of the object. Search your feelings, you know this to be true. When you are driving (or riding) in a car and you stick your hand out the window, you can feel the air pushing against your hand. The faster the car moves, the greater this force. The air resistance force depends on:

  • Velocity of the object. The typical model used for objects like a football would depend on the direction and the square of the magnitude of the velocity.
  • The density of air.
  • The cross sectional area of the object. Compare putting an open hand out the car window to a closed fist out the car window.
  • Some air drag coefficient. Imagine a cone and a flat disk, both with the same radius (and thus same cross sectional area). These two objects would have different air resistances due to the shape, this is the coefficient of drag (also called other things I am sure).

So, since the air force depends on the velocity, it will not be a constant acceleration. Kinematic equations won’t really work. To easily solve this problem, I will use numerical methods. The basic idea in numerical calculations is to break the problem into a whole bunch of little steps. During these small steps, the velocity does not change much so that I can “pretend” like the acceleration is constant. Here is a diagram of the forces on the ball while in the air.

air-resistance-diagram-1

Before I go any further, I would like to say that there has been some “stuff” done on throwing a football before – and they probably do a better job than this post. Here are a few references (especially with more detailed discussion about the coefficient of drag for a spinning football):

And now for some assumptions:

  • I hereby assume that the air resistance is proportional to the square of the magnitude of the velocity of the object.
  • The orientation of the football is such that the coefficient of drag is constant. This may not actually be true. Imagine if the ball were thrown and spinning with the axis parallel to the ground. If the axis stayed parallel to the ground, for part of the motion the direction of motion would not be along the axis. Get it?
  • Ignore aerodynamic lift effects.
  • Mass of the ball is .42 kg.
  • The density of air is 1.2 kg/m3.
  • The coefficient of drag for the football is 0.05 to 0.14
  • Typical initial speed of a thrown football is around 20 m/s.

And finally, here is the recipie for my numerical calculation (in vpython of course):

  • Set up initial conditions
  • Set the angle of the throw
  • Calculate the new position assuming a constant velocity.
  • Calculate the new momentum (and thus velocity) assuming a constant force.
  • Calculate the force (it changes when the velocity changes)
  • Increase the time.
  • Keep doing the above until the ball gets back to y=0 m.
  • Change the angle and do all the above again.

The answer

First, I ran the program with an initial velocity of 20 m/s. Here is the data:

rangeplot2

At 35 degrees, this gives a distance of 23 meters (25 yards). This doesn’t seem right. I know a quarterback can throw farther than that. What if I change the coefficient to 0.05? Then the greatest angle is closer to 40 degrees and it goes 28 meters. Still seems low (think Doug Flutie). What about with no air resistance? Then it goes 41 meters (at 45 degrees). So, here is the Doug Flutie throw.

From the video, it looks like he threw the ball from the 36ish yard line to about the 2 yard line. This would be 62 yards (56.7 meters). I am going to assume a coefficient of 0.07 (randomly). So, what initial speed will get this far? If I put in an initial velocity of 33 m/s, the ball will go 55.7 meters at an angle of 35 degrees.

Really the thing that amazes me is that someone (not me) can throw a ball that far and essentially get it where they want it. Even if they are only sometimes successful, it is still amazing. How is it that humans can throw things somewhat accurately? We obviously do not do projectile motion calculations in our head – or maybe we do?

Go Back to Top. Skip To: Start of Article.

zmj 2017-09-24 13:32 发表评论
]]>
Shape Detection & Tracking using Contours - սƵ2019|սع//www.pppqb.icu/zmj/archive/2017/09/14/215244.htmlzmjzmjThu, 14 Sep 2017 08:44:00 GMT//www.pppqb.icu/zmj/archive/2017/09/14/215244.html//www.pppqb.icu/zmj/comments/215244.html//www.pppqb.icu/zmj/archive/2017/09/14/215244.html#Feedback0//www.pppqb.icu/zmj/comments/commentRss/215244.html//www.pppqb.icu/zmj/services/trackbacks/215244.html阅读全文

zmj 2017-09-14 16:44 发表评论
]]>
USING OPENCV FOR SIMPLE OBJECT DETECTION - սƵ2019|սع//www.pppqb.icu/zmj/archive/2017/09/14/215243.htmlzmjzmjThu, 14 Sep 2017 08:07:00 GMT//www.pppqb.icu/zmj/archive/2017/09/14/215243.html//www.pppqb.icu/zmj/comments/215243.html//www.pppqb.icu/zmj/archive/2017/09/14/215243.html#Feedback0//www.pppqb.icu/zmj/comments/commentRss/215243.html//www.pppqb.icu/zmj/services/trackbacks/215243.html阅读全文

zmj 2017-09-14 16:07 发表评论
]]>
opencv3L最包围圆?minEnclosingCircle函数 - սƵ2019|սع//www.pppqb.icu/zmj/archive/2017/09/14/215242.htmlzmjzmjThu, 14 Sep 2017 08:05:00 GMT//www.pppqb.icu/zmj/archive/2017/09/14/215242.html//www.pppqb.icu/zmj/comments/215242.html//www.pppqb.icu/zmj/archive/2017/09/14/215242.html#Feedback0//www.pppqb.icu/zmj/comments/commentRss/215242.html//www.pppqb.icu/zmj/services/trackbacks/215242.html//blog.csdn.net/qq_23880193/article/details/49257637

版权声明Q本文ؓ博主原创文章Q未l博d怸得{载?/p>

  1. #include<iostream>  
  2. #include<vector>  
  3. #include<opencv2/opencv.hpp>  
  4.   
  5. using namespace cv;  
  6. using namespace std;  
  7.   
  8. int main()  
  9. {  
  10.     Mat srcImage(Size(600, 600), CV_8UC3, Scalar(0));  
  11.   
  12.     RNG &rng = theRNG();  
  13.   
  14.     char key;  
  15.     while (1)  
  16.     {  
  17.         //随机生成一些点  
  18.         //首先是随机生成点的L?/span>  
  19.         int g_nPointCount = rng.uniform(3, 30);  
  20.         //接下来就是随机生成一些点的坐?/span>  
  21.         vector<Point> points;  
  22.         for (int i = 0; i < g_nPointCount; i++)  
  23.         {  
  24.             Point midPoint;  
  25.   
  26.             midPoint.x = rng.uniform(srcImage.cols / 4, srcImage.cols * 3 / 4);  
  27.             midPoint.y = rng.uniform(srcImage.rows / 4, srcImage.rows * 3 / 4);  
  28.   
  29.             points.push_back(midPoint);  
  30.         }  
  31.   
  32.         //昄刚刚随机生成的那些点  
  33.         for (int i = 0; i < g_nPointCount; i++)  
  34.         {  
  35.             circle(srcImage, points[i], 0, Scalar(rng.uniform(0, 255), rng.uniform(0, 255), rng.uniform(0, 255)), 3);  
  36.         }  
  37.   
  38.         //在生成的那些随机点中L最包围圆?/span>  
  39.         Point2f center;  
  40.         float radius;  
  41.         minEnclosingCircle(points, center, radius);  
  42.   
  43.         //Ҏ得到的圆形和半径  l制圆Ş  
  44.         circle(srcImage, static_cast<Point>(center), (int)radius  
  45.             , Scalar(rng.uniform(0, 255), rng.uniform(0, 255), rng.uniform(0, 255)), 3);  
  46.   
  47.         imshow("【绘制结束后的图像?, srcImage);  
  48.   
  49.         key = waitKey();  
  50.         if (key == 27)  
  51.             break;  
  52.         else  
  53.             srcImage = Scalar::all(0);  
  54.     }  
  55.   
  56.     return 0;  
  57. }  



սƵ2019 2017-09-14 16:05 发表评论
]]>