2

打开CV基本指南第1部分

 3 years ago
source link: https://panchuang.net/2021/06/22/%e6%89%93%e5%bc%80cv%e5%9f%ba%e6%9c%ac%e6%8c%87%e5%8d%97%e7%ac%ac1%e9%83%a8%e5%88%86/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

希望你们都好,在接下来的博客里,我会尽力帮助你们开始你们的开放式简历课程。这是这个系列的第一个博客,在这个博客中我主要关注OpenCV的基础,所以我们将在这个博客中回答下面提到的问题。

☞如何安装opencv?

☞如何加载和显示图像?

☞我们可以用与图像相同的方式读取和显示视频吗?

☞如何调整图像大小?

☞如何在图像中添加形状和文本?

☞如何裁剪图像?

☞如何旋转或移动图像?

OpenCV是开源计算机视觉库的缩写。它是用来解决计算机视觉问题的Python库。通过使用OpenCV,我们可以很容易地添加不同的图像,或者有时我们可以裁剪图像,或者我们可以检测图像中的边缘,或者我们可以将其用于人脸检测等。基本上,使用OpenCV库可以非常容易地执行计算机视觉问题。

OpenCV的编程历史:

根据维基百科

OpenCV是用C++编写的,它的主要接口是C++,但它仍然保留了一个不太全面的旧C接口,尽管范围很广。所有新的开发和算法都出现在C++界面中。Python、Java和MATLAB/Octave中都有绑定。C++ C interface Python Java MATLAB OCTAVE

QNA系列:

好了,现在介绍的内容已经足够了。检查下面提到的问答系列,它将涵盖您所有的问题。现在不要浪费时间了,让我们开始吧。

1)如何安装OpenCV?

在本模块中,我们需要Numpy和Matplotlib以供将来使用。因此,我们可以通过在命令提示符下执行下面提到的命令来安装所有这些(这里我假设您的系统中已经安装了python3.0):

1)pip安装号

2)pip安装matplotlib

3)pip安装openCV-contrib-python

如果安装过程中有任何问题,请参考此链接了解详细信息link

2)如何加载和显示图片?

首先,我们需要导入一些重要的库,如下所示:

现在我们将尝试使用im.使用cv2_imshow读取并显示图像(如果有任何问题,您也可以使用cv.imshow,因为我正在使用Google Collab,所以我更喜欢使用cv2_imshow)。

上述代码的输出为:

3)我们可以像图片一样阅读和显示视频吗?

是的,我们可以,但是图像和视频有什么不同呢?

实际上,最简单的答案是,一张照片是一张图像,而视频是一系列以指定的帧频顺序播放的图像,通常来自播放视频文件的软件(数字)或播放磁带的硬件(模拟)。换句话说,视频是有运动的。

当我们尝试读取和显示视频时,我们会在OpenCV中观察到相同的情况,我们得到了图像的序列,我们可以对图像执行相同的操作。

让我们拭目以待吧。

上述代码的输出为:

我已经展示了视频的前2帧。但在输出中,您将获得视频中存在的所有可能的帧。

另外,如果我们必须捕获实况视频,那么我们可以使用cv.VideoCapture(0),这一点很重要。如果我们有2个摄像头连接到系统上,那么我们可以使用cv.VideoCapture(1),我们可以进一步增加摄像头的数量。

4)如何调整图片大小?

4.1.缩小映像:

有些时候,我们得到的图像是高分辨率的,所以很难对这类图像进行任何操作,因为这会占用更多的空间,影响性能。在这种情况下,我们将调整图像的大小和比例以避免此类问题。cv.resize()收缩原始图像的首选插值方法是cv.INTER_AREA。

下面提到的是我们可以用来调整图像、视频和实况视频大小的函数。

现在,我们将尝试将图像大小调整50%。

上述代码的输出为:

原图:

调整后的大小:

4.2.放大图像:

上面我们已经看到了图像的缩小。现在我们将重点放在图像的放大上。

我们将使用cv.INTER_CUB立方和cv.INTER_LINEAR进行放大。与cv.INTER_LINEAR相比,cv.INTER_CUBLE较慢,但在cv.INTER_CUBLE的情况下输出比cv.INTER_LINEAR要好得多。默认情况下,插值方法cv.INTER_LINEAR用于所有调整大小的目的。

上述代码的输出为:

4.3.视频调整大小:

现在我们将检查视频的大小。

上述代码的输出为:

下面提到的是另一个功能,它在视频直播的情况下很有帮助。

5)如何在图片中添加形状和文字?

在这里,我们将尝试添加不同的形状,如矩形、圆形,并尝试形状的厚度。

5.1.在图像中添加矩形:

下面提到的是这里的代码,我们将Original_img作为输入图像,我们将在该图像上绘制矩形。矩形的起始点为(200,200),最大为(300,300)。当颜色为B=200、G=100和R=150时。

检查下面提到的代码并输出

上述代码的输出:

5.2.添加全厚矩形:

下面提到的是这里的代码,我们将Original_img作为输入图像,我们将在该图像上绘制矩形。矩形的起始点是(0,0),它一直到图像的中心。颜色为B=200,G=155,R=40。这里我们取了厚度=-1,所以整个矩形都填满了颜色。

上述代码的输出:

5.3.添加全厚度圆:

下面提到的是这里的代码,我们将Original_img作为我们将在其上绘制圆的输入图像。圆的中心像素点为(450,450),圆的半径为40。当颜色为B=25、G=0和R=100时。这里我们取了厚度=-1,所以整个圆都填满了颜色。

上述代码的输出:

5.4.在图像中添加行:

下面提到的是这里的代码,我们将Original_img作为输入图像,我们将在该图像上绘制矩形。直线的起点像素为(300,300),终点像素为(500,500)。

上述代码的输出:

5.5。在图像中添加文本:

在这里,我们将通过使用cv.putText()方法在空白图像中添加文本,其中我们输入文本、要放置文本的像素位置,还可以选择字体类型,如font_hershey_simplex、font_hershey_Plain等,字体比例、颜色、粗细。

我们还可以使用numpy创建空白图像,下面的代码中也提到了这一点。

上述代码的输出:

6)如何裁剪图片?

通过使用下面提到的代码,我们可以很容易地裁剪图像的特定部分。这里只有你必须提到你必须裁剪的像素。

上述代码的输出:

原图:

从图像中裁剪零件:

7)如何旋转或平移图像?

如果我们想要移动图像,请检查下面提到的功能,该功能对相同的功能非常有用:

在这里,我们尝试使用上面提到的函数来旋转图像。

上述代码的输出:

现在,我们将尝试旋转上面已经旋转的图像。

从上面的输出我们知道,如果我们试图旋转已经旋转的图像,那么在先前图像中不可见的图像部分在当前输出图像中也会丢失。

此外,我们还可以将图像颠倒过来。检查下面提到的代码并输出。

上述代码的输出:

如果你到目前为止已经读过这个博客,那么你一定对OpenCV很熟悉。关于OpenCV话题的睡觉将在下一篇博客中报道。查看下一个博客的链接,在那里我们将重点介绍OpenCV的一些高级部分。

配置文件:

感谢您的阅读!请鼓掌感谢我的辛勤工作。我总是对建设性的反馈持开放态度–如果你对这篇分析有后续的想法,请在下面发表评论或通过LinkedIn联系。via LinkedIn.

参考文献:

1)https://www.youtube.com/watch?v=oXlwWbU8l2o&t=8707shttps://www.youtube.com/watch?v=oXlwWbU8l2o&t=8707s

2)https://docs.opencv.org/master/d6/d00/tutorial_py_root.htmlhttps://docs.opencv.org/master/d6/d00/tutorial_py_root.html

原创文章,作者:fendouai,如若转载,请注明出处:https://panchuang.net/2021/06/22/%e6%89%93%e5%bc%80cv%e5%9f%ba%e6%9c%ac%e6%8c%87%e5%8d%97%e7%ac%ac1%e9%83%a8%e5%88%86/


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK