快捷搜索:  汽车  科技

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上,下载下来后,整体文件夹布局:

opencv有成千上万个可用的函数:从opencv官方提供的样例代码中学习(1)

opencv有成千上万个可用的函数:从opencv官方提供的样例代码中学习(2)

其中,modules里是源码

data里是数据。

samples里也是数据。

data里面是模型的参数这类数据,

opencv有成千上万个可用的函数:从opencv官方提供的样例代码中学习(3)

如上图,haarcascades是用haar特征来提取特征做人脸检测时的检测模型的参数。

samples里面的数据,就是一些图片,视频数据了

opencv有成千上万个可用的函数:从opencv官方提供的样例代码中学习(4)

这个 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等平台上的样例代码都要使用这个数据。

opencv有成千上万个可用的函数:从opencv官方提供的样例代码中学习(5)

如上图,这张图片就是双目视觉的时候,用来求取相机参数的右图。

opencv有成千上万个可用的函数:从opencv官方提供的样例代码中学习(6)

梅西

opencv有成千上万个可用的函数:从opencv官方提供的样例代码中学习(7)

经典的lena

opencv有成千上万个可用的函数:从opencv官方提供的样例代码中学习(8)

深度图

opencv有成千上万个可用的函数:从opencv官方提供的样例代码中学习(9)

yolov3中可以检测出的类别数据

凡是我们例子代码中用到的数据,几乎都在这里了。

当然,还有一小部分没有,或者是需要我们自己生成的数据。

我们找几个例子代码看看

opencv有成千上万个可用的函数:从opencv官方提供的样例代码中学习(10)

如上图,python的例子代码中,stereo_match.py 文件中,使用了 aloeR.jpg右图 和aloeL.jpg左图来生成深度图。

再比如:

opencv有成千上万个可用的函数:从opencv官方提供的样例代码中学习(11)

pic1.png

opencv有成千上万个可用的函数:从opencv官方提供的样例代码中学习(12)

python的样例代码 houghlines.py使用了pic1.png

其实也就是说,python平台上的例子代码,使用到的图片,基本上是来自于samples/data 文件夹的。

opencv有成千上万个可用的函数:从opencv官方提供的样例代码中学习(13)

其实不只是python平台,gpu平台上的opencv代码也是使用的pic1.png。

我们回到python平台上来,

opencv有成千上万个可用的函数:从opencv官方提供的样例代码中学习(14)

python平台上的代码非常多,涵盖的内容也非常广泛,图像处理中的滤波操作,形态学运算,视频操作,二维码检测算法,光流法检测运动目标,目标跟踪算法,kalman滤波,霍夫变换,图割法等等

opencv有成千上万个可用的函数:从opencv官方提供的样例代码中学习(15)

这个图上还有目标检测,混合高斯模型做前背景分离,颜色直方图,反卷积,数据识别等等。

希望我讲这些代码的朋友请留言呀

猜您喜欢: