以下是关于“opencv与numpy的图像基本操作”的完整攻略。
OpenCV与NumPy简介
OpenCV是一个开源计算机视觉库,用于图像和视频。它提供了许多图像处理和计算视觉算法,可以用于图像分析、目标检测、人脸识别等领域。
NumPy是Python的一个开源学库,用于处理大型维数组和矩阵。它提供了高效的数组和数学函数,可以用于学算、数据分析、器习等领域。
OpenCV与NumPy的图像基本操作
OpenCV与NumPy可以一起使用,进行图像的基本操作。下面是一些常见的像基本操作:
读图像
使用OpenCV的cv2.imread()函数可以读取图像。该函数的语法如下:
cv2.imread(filename, flags)
其中,filename为要读取的图像文件名,flags为读取图像的方式,可以是cv2.IMREAD_COLOR(默认)、cv2.IMREAD_GRAYSCALE、cv2.IMREAD_UNCHANGED等。
下面是一个示例代码,演示了如何使用cv2.imread()函数读图像:
import cv2
# 读取图像
img = cv2.imread('image.jpg', cv2.IMREAD_COLOR)
# 显示图像
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
在上面的示例代码中,我们使用cv2.imread()函数读取了名为image.jpg的图像,并将其存储在变量img中。然后,我们使用cv2.imshow()函数显示图像,使用cv2.waitKey()函数等待用户按下任意键,最后使用cv2.destroyAllWindows()函数关闭窗口。
保存图像
使用OpenCV的cv2.imwrite()函数可以保存图像。该函数的语法如下:
cv2.imwrite(filename, img, params)
其中,filename为要保存图像文件名,img为要保存的图像,params为保存图像的参数,可以是None(默认)或者一个保存参数的列表。
下面是一个示例代码,演示了如何使用cv2.imwrite()函数保存图像:
import cv2
# 读取图像
img = cv2.imread('image.jpg', cv2.IMREAD_COLOR)
# 保存图像
cv2.imwrite('new_image.jpg', img)
# 显示图像
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
在上面的示例代码中,我们使用cv2.imread()函数读取了名为image.jpg的图像,并将其存储在变量img中。然后,我们使用cv2.imwrite()函数保存图像,并将其命名为new_image.jpg。后,我们使用cv2.imshow()函数图像,并使用cv2.waitKey函数等待用户按下任意键,最后使用cv2.destroyAllWindows()函数关闭所有口### 裁剪图像
使用NumPy的数组切片可以裁剪图像。下面是一个示例代码,演示了如何使用数组切片裁剪图像:
import cv2
import as np
#读取图像
img = cv2.imread('image.jpg', cv2.IMREAD_COLOR)
# 裁剪图像
cropped_img = img[100:500, 200:600]
# 显示图像
cv2.imshow('image', img)
cv2.imshow('cropped image', cropped)
cv2.waitKey(0)
cv2.destroyAllWindows()
在上面的示例代码中,我们使用cv2.imread()函数读取了名为image.jpg的图像,并将其存储在变量img中。然后,我们使用数组切片裁剪图,并将其存储在变量cropped_img中。最后,我们使用cv2()函数显示原始图像和裁剪后的图像,并使用cv2.waitKey()函数等待用户按下任意键,最后使用cv2.destroyAllWindows()函数关闭所有窗口。
缩放图像
使用OpenCV的cv2.resize()函数可以缩放像。该函数的语法如下```python
cv2.resize(src, dsize[, dst[, fx[, fy[, interpolation]]]])
其中,src为要缩放的图像,dsize为缩放后的图像大小,fx和fy为水平和垂直方向的缩放因子,interpolation为插方法,可以是2.INTER_LINEAR(默认)、cv2.INTER_AREA、cv2.INTER_CUBIC等。
下面是一个示例代码,演示了如何使用cv2.resize()函数缩放图像:
```python
import cv2
# 读取图像
img = cv2.imread('image.jpg', cv2.IMREAD_COLOR)
# 缩放图像
resized_img = cv2.resize(img, (0, 0), fx=0.5, fy=0.5)
# 显示图像
cv2.imshow('image', img)
cv2.imshow('resized image', resized_img)
cv2.waitKey()
cv2.destroyAllWindows()
在上面的示例代码中,我们使用cv2.imread()函数读取了名为image.jpg的图像,并将其存储在变量img中。然后,我们使用cv2.resize()函数缩放图像将其存储在变量resized_img中。最后,我们使用cv2.imshow()函数显示原始图像和缩放后图像,并使用cv2.waitKey()函数等待用户按下任意键,最后使用cv2.destroyAllWindows()函数关闭所有窗口。
示例1:使用OpenCV和NumPy进行图像加法
下面是一个示例代码演示了如何使用OpenCV和NumPy进行图像加法:
import cv2
import numpy as np
# 读取图像
img1 = cv2.imread('image1.jpg', cv2.IMREAD_COLOR)
img2 = cv2.imread('image2.jpg', cv2.IMREAD_COLOR)
# 图像加法
result = cv.add(img1, img2)
# 显示图像
cv2.imshow('image1', img1)
cv2.imshow('image2', img2)
cv2.imshow('result', result)
cv2.waitKey(0)
cv2.destroyAllWindows()
在上面的示例代码中,我们使用cv2.imread()函数读取了名为image1.jpg和image2.jpg的两个图像,并将其存储在变量img1和img2中。然后,我们使用cv2.add()函数对两个图进行加法运算,并将结果存储在变量result中。最后,我们使用cv2.imshow函数显示原始图像和加法运算后图像,并使用cv2.waitKey()函数等待用户按下任意键,最后使用cv2.destroyAllWindows()函数关闭所有窗口。
示例2:使用OpenCV和NumPy进行图像阈值处理
下面一个示例代码,演示了如何使用OpenCV和NumPy进行图像阈值处理:
import cv2
import numpy as np
# 读取图像
img = cv2.imread('image.jpg', cv2.IMREAD_GRAYSCALE)
# 图像阈值处理
ret, thresh cv2.threshold(img, 127, 255, cv2.THRESH_BINARY)
# 显示图像
cv2.imshow('image', img)
cv2.imshow('threshold', thresh)
cv2.waitKey(0)
cv2.destroyAllWindows()
在上面的示例代码中,我们使用cv2.imread()读取了名为image.jpg的灰度图像,并将其存储在变量img中。然后,我们使用cv2.threshold()函数对图像进行阈值处理,并将结果存储在变量thresh中。最后,我们使用cv2.imshow()函数显示原始像和阈值处理后的图像,并使用cv2.waitKey()函数等待用户按下任意键,最后使用cv2.destroyAllWindows()函数关闭所有窗口。
总结
综上所述,“opencv与numpy的图像基本操作”的完整攻略包括读图像、保存图像、裁剪图像、缩放图像等常见图像基本操作,以及两个示例代码。实际应用中,可以根据具体需求使用这些操作对图像进行处理。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:opencv与numpy的图像基本操作 - Python技术站