在OpenCV中的奇怪发现
最近的项目中使用了部分OpenCV的功能调用,比较常见的就是直线识别和圆形识别。虽然有很多文章介绍了这两个功能调用的参数用法,但是,在使用中发现,还是有很多奇怪的现象,有待更深入地了解。
识别线段的时候,有的时候会存在比较粗的线段,或者说是由多条单像素线段并排组成的线段,而且,当这些线段并非垂直或水平的时候,如果改变了角度参数,就会发现直接影响了检测结果,在测试中发现,该参数和线段的倾斜程度严重相关,比如是Π/20,检测出8条并列的线段,哪怕微小的改动成Π/21,也会导致结果变成了2条线段。
圆形检测也很奇怪,当被检测的图形充满各种复杂的形状时,出现成千上万的检测结果也是正常,虽然正确结果只有37个,但是,即使只是改变圆的最大半径大小,也会导致检测数量发生巨变,更神奇的是,原来没检测出来的小圆,居然会因为最大半径的改变而被检测出来。
项目和习题的差别实在太大,都是霍夫曼变换,在项目中应用就会发现,结果却完全不同,真正的原因只能到源码里去找了。