Python史上最全的OpenCV教程!数据科学入门!你也可以!

Posted python团长

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python史上最全的OpenCV教程!数据科学入门!你也可以!相关的知识,希望对你有一定的参考价值。

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

正如前面提到的,你也可以在Matplotlib显示图像,这里有一些如何实现代码:

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

接下来,我们可以开始画画了,所以:

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

在下一个教程中,我们将介绍我们可以执行的基本图像操作。

四。图像操作

在opencv教程中,我们将介绍一些我们可以做的简单的图像操作。每个视频分解成帧。然后,每个帧,像一个图像,被分解成帧/图片中存储在行和列中的像素。每个像素都有一个坐标位置,每个坐标由一个颜色值组成。让我们列出访问不同位的一些示例。

我们将像往常一样阅读图像(如果可以的话,请使用自己的图像,但这里是我在这里使用的图像)

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

首先,让我们看看简单的加法会做什么。

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

这更简单,但我们仍然忽略了很多背景。接下来,我们可以尝试自适应阈值,它将试图改变阈值,并希望计算出弯曲的页面。

Python史上最全的OpenCV教程!数据科学入门!你也可以!

还有另一种版本的阈值可以使用,称为大津阈值。它不工作在这里,但是:

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

八、模糊性和流畅性

在这个python opencv教程中,我们将介绍如何从我们的过滤器中消除噪声,例如简单的阈值,或者甚至我们以前的特定颜色过滤器。

正如你所看到的,我们有很多黑色的斑点,我们喜欢红色,还有很多其他颜色分散在里面。我们可以使用各种模糊和平滑技术来弥补这一点。我们可以从一些熟悉的代码:

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

下一对是“打开”和“关闭”。开放的目的是消除“假阳性”。有时在背景中,你会得到一些像素“噪音”。“关门”的理念是消除假阴性。基本上,您已经检查过您的形状,比如我们的帽子,但对象仍然有一些黑色像素。闭包将试图清除它们。

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

在下一个教程中,我们将讨论图像梯度和边缘检测。

十,边缘检测和梯度

欢迎来到另一个python opencv教程。在本教程中,我们将介绍图像梯度和边缘检测。图像的梯度可以用来测量方向的强度,边缘检测和它所说的一样:它找到边缘!我打赌你没看到。

首先,让我们展示一些渐变的例子:

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

太好了!但这并不完美。注意,阴影会导致边缘被检测到。最明显的是蓝色的阴影。

在下一篇opencv教程中,我们将讨论如何在其他图像中搜索和找到相同的图像模板。

Python史上最全的OpenCV教程!数据科学入门!你也可以!

这只是其中的一个端口,但我们很想知道我们是否能匹配其他端口。我们必须选择一个阈值,其中一些可能是80%匹配,然后我们说它匹配。因此,我们将开始加载和转换图像:

Python史上最全的OpenCV教程!数据科学入门!你也可以!

到目前为止,我们已经加载了两个图像,并转换成灰度级。我们保留原始的RGB图像并创建灰度版本。我以前提到过这个,但是我们这样做的原因是我们在灰度版本上执行所有的处理,然后在同一标签的彩色图像上做标记。

对于主图像,我们只有一个彩色版本和一个灰色版本。我们加载模板并记录大小。

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

所以我们得到了几场比赛。是否有必要降低门槛?让我们试试0.7。

Python史上最全的OpenCV教程!数据科学入门!你也可以!

十二、GrabCut前景提取

欢迎来到python opencv前景提取教程。这里的想法是找到前景并删除背景。它就像一个绿色的屏幕,但这里我们并不需要一个绿色的屏幕。

首先,我们将使用一个图像:

随意使用。

让我们加载映像并定义一些东西:

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

在下一个教程中,我们将讨论如何执行角点检测。

十三、角点检测

欢迎来到python opencv角检测教程。角点检测的目的是跟踪运动,进行三维建模,识别物体、形状和角色。

在本教程中,我们将使用以下图片:

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

十四、特征匹配(丹颖社)爆破

欢迎来到python opencv特性匹配教程。特征匹配将是模板匹配的一个稍微令人印象深刻的版本,这需要一个完美的,或者非常接近完美的匹配。

我们从我们想要找到的图像开始,然后我们可以在另一个图像中搜索图像。这里完美的图像是不需要相同的光,角度,旋转等功能只需要匹配。

首先,我们需要一些例子图像。我们的“模板”,或者我们将尝试匹配图像:

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

十五、MOG背景被削弱

在这个python opencv教程中,我们将讨论如何通过检测运动来减少图像的背景。这将要求我们审查视频的使用,或者有两个图像,一个没有你想要跟踪的人/对象,另一个有字符/对象。如果你想,你可以使用你的相机,或者使用下面的视频:

这里的代码非常简单,我们现在知道了:

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

在这里,我们发现的面孔,他们的大小,矩形,和投资回报率。接下来,我们寻找一些眼睛。

Python史上最全的OpenCV教程!数据科学入门!你也可以!

完整的代码:

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

opencv_createsamples -img watch5050.jpg -bg bg.txt -info info/info.lst -pngoutput info -maxxangle 0.5 -maxyangle 0.5 -maxzangle 0.5 -num 1950

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

现在让我们来运行训练命令:

opencv_traincascade -data data -vec positives.vec -bg bg.txt -numPos 1800 -numNeg 900 -numStages 10 -w 20 -h 20

在这里,我们展示了我们想要的数据,矢量文件的位置,背景文件的位置,有多少正面图像和负图像,有多少个阶段,以及宽度和高度。请注意,我们用比我们少得多numpos。这是为舞台腾出空间。

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

Python史上最全的OpenCV教程!数据科学入门!你也可以!

酷!所以你可能没有用我的手表。你是怎样达成它的?如果你有麻烦,试着使用和我完全一样的东西。检查图像,而不是检测相机,这里有一个:


python团长

如果对你有帮助



以上是关于Python史上最全的OpenCV教程!数据科学入门!你也可以!的主要内容,如果未能解决你的问题,请参考以下文章

干货 | 史上最全 OpenCV 活体检测教程!

Vue2.0史上最全入坑教程(下)—— 实战案例

Python安装教程-史上最全

Python的高级特效是什么?有什么用呢?史上最全的教程!

史上最全的Python电子书教程资源下载(转)

python学习教程,史上最全面的python学习路线图