Python计算机视觉OpenCV入门讲解攻略
OpenCV是一个强大的开源计算机视觉库,能够帮助开发者处理图像和视频数据,实现许多计算机视觉应用。下面让我们一步步深入学习Python计算机视觉OpenCV,
第一步:OpenCV安装
安装OpenCV之前,我们需要先安装Python。建议使用Python3。接下来我们可以采用pip安装OpenCV:
pip install opencv-python
安装成功后,我们可以使用以下代码测试OpenCV是否安装成功:
import cv2
print(cv2.__version__)
如果输出了版本号,则说明OpenCV已经成功安装并导入。
第二步:读取、显示和保存图像
在OpenCV中,我们可以读取图像文件,并将其显示在屏幕上。以下是一个基本代码示例:
import cv2
img = cv2.imread('test.jpg', 1)
cv2.imshow('image', img)
k = cv2.waitKey(0)
if k == 27: # 等待ESC键按下
cv2.destroyAllWindows()
elif k == ord('s'): # 等待s键按下,保存图像并退出程序
cv2.imwrite('saved_image.png', img)
cv2.destroyAllWindows()
这个例子加载了一个名为“test.jpg”的图像文件,并显示在名为“image”的窗口中。程序将等待用户输入,并根据按键的不同来保存或关闭窗口。如果用户按下“s”键,则图像将作为新文件保存,并关闭窗口。
第三步:图像预处理
在OpenCV中,我们可以对图像进行各种处理。以下是一个基本代码示例:
import cv2
img = cv2.imread('test.jpg', 0) # 以灰度图像方式加载图像
thresh_value = 127 # 阈值
# 将图像二值化
ret, thresh = cv2.threshold(img, thresh_value, 255, cv2.THRESH_BINARY)
# 显示原始图像和处理后的图像
cv2.imshow('original', img)
cv2.imshow('thresholded', thresh)
cv2.waitKey(0) # 等待直到用户关闭窗口
cv2.destroyAllWindows() # 关闭所有窗口
这个例子将使用灰度方式加载一个图像,然后将图像二值化,将颜色值小于阈值的像素设为0,其他像素设为255。最后,程序将显示原始图像和处理后的图像。
示例1: 人脸检测
以下是一个基本的示例,它使用OpenCV检测静态图像中的人脸:
import cv2
img = cv2.imread('test.jpg', 1)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
faces = face_cascade.detectMultiScale(gray, scaleFactor=1.5, minNeighbors=5)
for (x, y, w, h) in faces:
cv2.rectangle(img, (x, y), (x+w, y+h), (0, 0, 255), 2)
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
这个例子读取一个图像文件,将其灰度化,并使用haar分类器检测人脸。程序将在图像中找到人脸,然后用红色矩形框住它们。
示例2: 实时视频处理
以下是一个实时视频处理的示例:
import cv2
cap = cv2.VideoCapture(0)
while True:
ret, frame = cap.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
faces = face_cascade.detectMultiScale(gray, scaleFactor=1.5, minNeighbors=5)
for (x, y, w, h) in faces:
cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 0, 255), 2)
cv2.imshow('video', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
这个例子打开计算机摄像头,并实时捕获视频帧。程序将每个帧转换为灰度图像,然后使用haar分类器检测人脸。程序将在图像中找到人脸,然后用红色矩形框住它们。使用者可以按下“q”键退出程序。
总之,OpenCV提供了各种工具,可以轻松地处理图像和视频数据。我们只需要遵循以上步骤,即可快速入门。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python计算机视觉OpenCV入门讲解 - Python技术站