opencv有成千上万个可用的函数:从opencv官方提供的样例代码中学习
opencv有成千上万个可用的函数:从opencv官方提供的样例代码中学习问题跟踪: <https://github.com/opencv/opencv/issues>常见问题: <http://answers.opencv.org>主页: <https://opencv.org>学习课程: <https://opencv.org/courses>说明文档: <https://docs.opencv.org/master/>
OpenCV是一个关于计算机视觉的开源库。这个库可以完成图像的各种处理,完成图像分类,目标检测,3D立体重建等与图像,视频相关的各种计算。
所以,opencv也是计算机视觉工程师必须掌握的一个库。
学习opencv,最直接的材料就是opencv官方的github源码了。
opencv 的全称 Open Source Computer Vision Library
主页: <https://opencv.org>
学习课程: <https://opencv.org/courses>
说明文档: <https://docs.opencv.org/master/>
常见问题: <http://answers.opencv.org>
问题跟踪: <https://github.com/opencv/opencv/issues>
更多函数: <https://github.com/opencv/opencv_contrib>
那么在通过官网的资料学习opencv时,我们会遇到这样一个问题。
官网给的代码很好,看起来也很好运行,但是当我们自己想复现时,就会发现,我们找不到代码所使用的图像。
一般来说,我们会随便找一些图像来替代。但是这不是最优的解决办法。
因为有些数据不是那么容易替代的。
所以,最好的解决办法:使用opencv提供的数据文件。
我们把opencv 源码从github上,下载下来后,整体文件夹布局:
其中,modules里是源码
data里是数据。
samples里也是数据。
data里面是模型的参数这类数据,
如上图,haarcascades是用haar特征来提取特征做人脸检测时的检测模型的参数。
samples里面的数据,就是一些图片,视频数据了
这个 samples文件夹里,
samples/data才是数据
samples/android是 android平台的样例程序
samples/python 是opencv在python平台的样例程序
samples/swift 是opencv在 macos swift平台的样例程序
samples/gpu是opencv在gpu平台的样例程序
基本上,文件夹samples内就是在各个平台上如何使用opencv的一个样例
我后续会讲解opencv在cpp gpu python等平台上的使用。
今天我们去看看samples/data中的内容。
这里面的数据,对各个平台上的样例程序来说是共享的。
cpp gpu,python等平台上的样例代码都要使用这个数据。
如上图,这张图片就是双目视觉的时候,用来求取相机参数的右图。
梅西
经典的lena
深度图
yolov3中可以检测出的类别数据
凡是我们例子代码中用到的数据,几乎都在这里了。
当然,还有一小部分没有,或者是需要我们自己生成的数据。
我们找几个例子代码看看
如上图,python的例子代码中,stereo_match.py 文件中,使用了 aloeR.jpg右图 和aloeL.jpg左图来生成深度图。
再比如:
pic1.png
python的样例代码 houghlines.py使用了pic1.png
其实也就是说,python平台上的例子代码,使用到的图片,基本上是来自于samples/data 文件夹的。
其实不只是python平台,gpu平台上的opencv代码也是使用的pic1.png。
我们回到python平台上来,
python平台上的代码非常多,涵盖的内容也非常广泛,图像处理中的滤波操作,形态学运算,视频操作,二维码检测算法,光流法检测运动目标,目标跟踪算法,kalman滤波,霍夫变换,图割法等等
这个图上还有目标检测,混合高斯模型做前背景分离,颜色直方图,反卷积,数据识别等等。
希望我讲这些代码的朋友请留言呀