python opencv 的常见用法
Python OpenCV的常见用法
Python OpenCV是一种基于Python编程语言的计算机视觉库,它可以用于图像处理、计算机视觉、机器学习等领域。Python OpenCV的常见用法包括图像读取、图像处理、图像显示、图像保存、图像特征提取、图像分类等。
一、图像读取
Python OpenCV可以读取多种格式的图像文件,包括JPEG、PNG、BMP、GIF等。读取图像的代码如下:
```
import cv2
img = cv2.imread('image.jpg')
```
其中,'image.jpg'是要读取的图像文件名,img是读取到的图像数据。读取到的图像数据是一个三维数组,第一维表示图像的高度,第二维表示图像的宽度,第三维表示图像的通道数。通道数为1表示灰度图像,通道数为3表示彩图像。
二、图像处理
Python OpenCV可以对图像进行多种处理操作,包括图像缩放、图像旋转、图像平移、图像翻转、图像裁剪、图像滤波等。下面以图像缩放为例,介绍图像处理的代码:
```
import cv2
img = cv2.imread('image.jpg')
resized_img = size(img, (500, 500))
cv2.imshow('resized image', resized_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
其中,size()函数用于对图像进行缩放操作,第一个参数是要缩放的图像数据,第二个参数是缩放后的图像大小。cv2.imshow()函数用于显示图像,第一个参数是窗口名称,第二个参数是要显示的图像数据。cv2.waitKey()函数用于等待用户按下键盘,参数为0表示无限等待。cv2.destroyAllWindows()函数用于关闭所有窗口。
三、图像显示
Python OpenCV可以将图像显示在窗口中,方便用户查看图像。下面是图像显示的代码:
```
import cv2
img = cv2.imread('image.jpg')
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
其中,cv2.imshow()函数用于显示图像,第一个参数是窗口名称,第二个参数是要显示的图像数据。cv2.waitKey()函数用于等待用户按下键盘,参数为0表示无限等待。cv2.destroyAllWindows()函数用于关闭所有窗口。
四、图像保存
Python OpenCV可以将图像保存为多种格式的图像文件,包括JPEG、PNG、BMP、GIF等。下面是图像保存的代码:
```
import cv2
img = cv2.imread('image.jpg')
cv2.imwrite('new_image.jpg', img)
```
其中,cv2.imwrite()函数用于将图像保存为图像文件,第一个参数是要保存的图像文件名,第二个参数是要保存的图像数据。
五、图像特征提取
Python OpenCV可以提取图像的特征,包括边缘、角点、直线、圆等。下面以边缘检测为例,介绍图像特征提取的代码:
```
rectangle函数opencvimport cv2
img = cv2.imread('image.jpg')
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(gray_img, 100, 200)
cv2.imshow('edges', edges)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
其中,cv2.cvtColor()函数用于将彩图像转换为灰度图像,cv2.Canny()函数用于进行边缘检测,第一个参数是要检测的图像数据,第二个参数是边缘检测的低阈值,第三个参数是边缘检测的高阈值。cv2.imshow()函数用于显示图像,第一个参数是窗口名称,第二个参数是要显示的图像数据。cv2.waitKey()函数用于等待用户按下键盘,参数为0表示无限等待。cv2.destroyAllWindows()函数用于关闭所有窗口。
六、图像分类
Python OpenCV可以对图像进行分类,包括人脸识别、物体识别等。下面以人脸识别为例,
介绍图像分类的代码:
```
import cv2
face_cascade = cv2.CascadeClassifier('haarcascade_l')
img = cv2.imread('image.jpg')
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray_img, 1.3, 5)
for (x, y, w, h) in faces:
angle(img, (x, y), (x+w, y+h), (0, 255, 0), 2)
cv2.imshow('faces', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
其中,cv2.CascadeClassifier()函数用于加载人脸识别的分类器,'haarcascade_l'是人脸识别的分类器文件名。cv2.cvtColor()函数用于将彩图像转换为灰度图像,cv2.detectMultiScale()函数用于进行人脸识别,第一个参数是要识别的图像数据,第二个参数是缩放因子,第三个参数是最小邻居数。angle()函数用于在图像上绘制矩形框,第一个参数是要绘制的图像数据,第二个参数是矩形框的左上角坐标,第三个参数是矩形框的右下角坐标,第四个参数是矩形框的颜,第五个参数是矩形框的线宽。cv2.imshow()函数用于显示图像,第一个参数是窗口名称,第二个参数是要显示的图像数据。cv2.waitKey()函数用于等待用户按下键盘,参数为0表示无限等待。cv2.destroyAllWindows()函数用于关闭所有窗口。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论