热门搜索 :
考研考公
您的当前位置:首页正文

python怎么使用opencv

2024-07-16 来源:伴沃教育

OpenCV是一个旨在解决计算机视觉问题的Python库。OpenCV最初由Intel在1999年开发,但是后来由Willow Garage资助。它支持很多编程语言,如C++,Python,Java等等。它也支持多种平台,包括Windows,Linux和MacOS。

OpenCV Python只是一个与Python一起使用的原始C++库的包装类。通过使用它,所有OpenCV数组结构都能被转化为NumPy数组或从NumPy数组转化而来。这样就可以轻松地将其与其他使用NumPy的库集成。例如,SciPy和Matplotlib等库。

OpenCV的基础操作?

Opencv能完成以下从加载图像到调整大小等基本操作:

使用OpenCV加载图片

查看图片形状/分辨率

显示图片

调整图像大小

1. 使用OpenCV加载图片

Import cv2  
 # colored Image  
Img = cv2.imread ("Penguins.jpg",1)  
 # Black and White (gray scale)  
Img_1 = cv2.imread ("Penguins.jpg",0)

如以上代码所示,第一个要求是导入OpenCV模块。

之后,我们可以用imread模块读取图片。参数中的1代表这是一个彩色图片。如果这个参数的值是0,就意味着这个将被导入的图片是黑白图片。这里的图片名称是“Penguins”。很简单吧?

2. 查看图片形状/分辨率

我们可以使用shape子函数来输出图片的形状。看看以下代码:

Import cv2  
# Black and White (gray scale)  
Img = cv2.imread ("Penguins.jpg",0)  
Print(img.shape)

对于图片的形状,我们指的是NumPy数组的形状。执行代码之后你将会看到这个矩阵由768行和1024列组成。

3. 显示图片

使用OpenCV显示图片非常简单和直接。思考以下图片:

import cv2  
 
# Black and White (gray scale)  
Img = cv2.imread ("Penguins.jpg",0)  
cv2.imshow("Penguins", img)  
 
cv2.waitKey(0)  
# cv2.waitKey(2000)  
cv2.destroyAllWindows()

正如你所见,我们首先使用imread导入图片。我们需要一个输出窗口来显示这个图片,对吧? 

然后,我们等待用户事件。waitKey使窗口保持静态直到用户按下一个键。传入的参数是以毫秒为单位的时间。

最后,我们根据waitForKey的参数使用destroyAllWindows关闭窗口。

4. 调整图像大小

类似地,调整图像大小非常简单。 这里有另一个代码段:

import cv2  
# Black and White (gray scale)  
img = cv2.imread ("Penguins.jpg",0)  
resized_image = cv2.resize(img, (650,500))  
cv2.imshow("Penguins", resized_image)  
cv2.waitKey(0)  
cv2.destroyAllWindows()

这里,resize函数用于将图像大小调整为所需的形状。这里的参数是新调整大小后的图像的形状。

与之前的代码相比,剩下的代码非常简单,对吗?

我相信你们对企鹅很好奇,这是我们想要输出的图片!

这是另一个向resize函数传递参数的方法。看看下面的表示方法:

Resized_image = cv2.resize(img, int(img.shape[1]/2), int(img.shape[0]/2)))

这里,我们得到的新图像大小是原始图像的一半。

使用OpenCV进行人脸检测

这看起来很复杂,但实际上很容易。 让我带你了解整个过程,然后你也会有同样的感受。

第一步:想一想我们的先决条件。我们首先需要一个图像。然后,我们需要创建一个级联分类器,它最后会给我们提供面部特征。

第二步:这一步要使用到OpenCV读取图像和特征文件。所以这个时候,原始数据点是NumPy数组的形式。

我们要做的就是搜索面部 NumPy n维数组的行和列的值。这是具有面部矩形坐标的数组。

第三步:最后一步是使用矩形面框显示图像。

看看下面的图片,这里我以图片的形式总结了上述的三个步骤以便于阅读:

非常直接明了,对吧?

首先,如之前所述,我们创建CascadeClassifier对象来提取面部特征。包含面部特征的XML文件路径是此处的参数。

下一步是读取一个包含面部的图片,并且使用COLOR_BGR2GREY将其转化为黑白图片。接下来,我们搜索图像的坐标。这是使用detectMultiScale来实现的。

你问什么坐标?它是面部矩形的坐标。scaleFactor被用来减小5%的形状值,直到找到面部。因此,总的来说,值越小,准确度越高。

最后,这张脸被显示到窗口。

给识别的人脸添加矩形面框

这个逻辑很简单——就像使用for循环语句一样简单。看看下面的图片:

我们通过传递参数(比如图片对象,轮廓框的RGB值和矩形的宽度),使用cv2.rectangle来定义方法以创建一个矩形。

让我们来看看面部检测的完整代码:

import cv2  
# Create a CascadeClassifier Object  
face_cascade = cv2.CascadeClassifier("haarcascade_frontalface_default.xml")  
# Reading the image as it is  
img = cv2.imread("photo.jpg") 
# Reading the image as gray scale image  
gray_img = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)  
# Search the co-ordintes of the image  
faces = face_cascade.detectMultiScale(gray_img, scaleFactor = 1.05,  minNeighbors=5)  
for x,y,w,h in faces:  
    img = cv2.rectangle(img, (x,y), (x+w,y+h),(0,255,0),3)  
resized = cv2.resize(img, (int(img.shape[1]/7),int(img.shape[0]/7)))   
cv2.imshow("Gray", resized)  
cv2.waitKey(0)  
cv2.destroyAllWindows()

众多,尽在python学习网,欢迎在线学习!

伴沃教育还为您提供以下相关内容希望对您有帮助:

OpenCV入门(一)Python环境的搭建

2. OpenCV-python在线安装安装Python后,需安装OpenCV开发环境。借助pip这个包管理工具,可以下载并安装NumPy、Matplotlib和opencv-python。例如,通过pip install numpy matplotlib opencv-python命令安装,可能需要联网。安装完成后,你可以编写并运行简单的OpenCV程序,如读取和显示图像。3. PyCharm的下载与安装...

Python OpenCV 练习指南 01:读取、显示与储存图像示

在Python中使用OpenCV库可以通过cv2.imread()函数读取图像文件。使用cv2.imshow()函数可以在窗口中显示图像。cv2.waitKey()函数可以等待键盘输入。使用cv2.destroyAllWindows()函数可以关闭OpenCV窗口。使用cv2.imwrite()函数可以将图像保存为文件。在运行代码之前,确保图像文件存在,并且文件路径正确。您可以根...

Python计算机视觉-使用OpenCV读写视频

在Python中,OpenCV提供了强大的功能来处理视频文件。首先,让我们了解如何使用cv2.VideoCapture和cv2.VideoWriter这两个核心类进行视频的读取和写入。这两个类使得处理视频流与图像文件类似,主要是通过循环读取帧并进行相应的操作。1. 读写视频代码示例展示了如何从磁盘文件读取视频并显示其内容。OpenCV的Video...

OpenCV自学笔记分享 Python与OpenCV基础入门:零起点学习计算机视觉 第1...

以下是一个简单的代码演示,展示了如何使用OpenCV进行多目标模板匹配:pythonimport cv2import numpy as np# 假设你已经有了模板图像和源图像template = ...source = ...# 模板匹配result = cv2.matchTemplate(source, template, cv2.TM_CCOEFF_NORMED)# 设置匹配阈值threshold = 0.8# 使用numpy.where...

怎么在python中安装open cv2?

1.到文末下载OpenCV的安装包。其实这个安装包就是一个解压缩。2.在安装包解压的目录找到这个文件。3.把这个文件拷贝到Python的包安装目录下面。4.在Python的shell导入cv2模块试试,看是不是安装好了。Python是一种面向对象、直译式计算机程序设计语言,由荷兰人Guido van Rossum发明于1989年,1991年发行...

用Python 和 OpenCV 实现图像处理基础

Python 和 OpenCV 是图像处理的强大工具,本文将带你入门它们的基础应用。首先,让我们安装 OpenCV,只需在命令行中轻松运行 pip 安装命令。对于基本操作,OpenCV 提供了简便的接口。例如,你可以通过简单的代码读取、显示和保存图像。想要调整图像大小或旋转,cv2.resize() 和 cv2.getRotationMatrix2D() ...

Python计算机视觉-使用OpenCV裁剪图像

Python: cropped = img[start_row:end_row, start_col:end_col]C++: img(Range(start_row, end_row), Range(start_col, end_col))裁剪的实用应用之一是将图像分割成小块,通过循环操作实现。Python和C++的实现如下:Python: 代码片段 C++: 代码片段 在这篇文章中,我们深入解析了OpenCV的裁剪...

如何在Python中使用OpenCV的

1.下载Python,当前OPencv版本为249,不过其支持的最新版本的Python为2.7,所以可以下载276版本。2.下载numpy,开始我使用了1.6,没有通过,错误如图。下载了最新的1.8.1版本。3.将Opencv安装目录下opencv\build\python\2.7\x86中的cv2.pyd复制到python安装目录Lib\site-packages下。4.找到opencv源...

使用Python和OpenCV从视频中提取图片

筛选特定画面或者使用更高效的算法,这取决于你的具体需求。完整代码示例如下,如果你对OpenCV的基本操作还不熟悉,可以参考《opencv-python:Python中的视觉超级库》这篇教程。总结起来,本文提供了从视频中提取图片的Python和OpenCV操作指南,通过分步实践和优化,你可以根据实际项目需求定制图片提取策略。

Python图像处理丨基于OpenCV和像素处理的图像灰度化处理

本篇文章详细阐述了Python中基于OpenCV和像素处理的图像灰度化技术。通过cv2.cvtColor()函数,OpenCV为图像转换提供了便利,而像素处理方法则从底层实现灰度化过程。灰度化原理是将彩色图像的R、G、B三个颜色分量调整为相同的值,形成单一灰度值的图像。处理方法有多种,如简单地取平均值,或按人类视觉敏感...

Top