【OpenCV基础知识点总结】
OpenCV(开���计算机视觉库)是一个广泛应用于图像和视频处理的Python库。以下是一些主要的图像处理知识点汇总和相应的代码示例说明:
()1. 图像读取与显示
-
读取图像:使用cv2.imread()函数从文件中加载图像。
import cv2 # 读取图像 img = cv2.imread('image.jpg', cv2.IMREAD_COLOR) # IMREAD_COLOR表示以BGR格式读取,还有IMREAD_GRAYSCALE等选项 if img is not None: # 检查是否成功读取图像 # 显示图像 cv2.imshow('Image', img) cv2.waitKey(0) # 等待用户按键关闭窗口 cv2.destroyAllWindows() # 关闭所有窗口
2. 图像写入
-
保存图像:使用cv2.imwrite()函数将图像矩阵保存到磁盘。
()cv2.imwrite('output.jpg', img) # 将img矩阵内容保存为'output.jpg'
3. 图像基本操作
-
裁剪图像:通过numpy切片操作或cv2.resize()函数裁剪图像的一部分。
cropped_img = img[50:200, 100:300] # 切片裁剪
-
调整图像大小:
resized_img = cv2.resize(img, (new_width, new_height), interpolation=cv2.INTER_LINEAR)
4. 颜色空间转换
-
灰度图像转换:
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
-
RGB转BGR 或其他颜色空间转换。
5. 图像滤波器
-
均值滤波:减少图像噪声。
blurred_img = cv2.blur(img, (5, 5)) # 使用5x5大小的核进行模糊
-
高斯滤波:
gaussian_blurred_img = cv2.GaussianBlur(img, (5, 5), 0)
6. 边缘检测
-
Canny边缘检测:
edges = cv2.Canny(img, threshold1, threshold2)
7. 形态学操作
-
膨胀与腐蚀:
kernel = np.ones((3, 3), np.uint8) dilated_img = cv2.dilate(img, kernel, iterations=1) eroded_img = cv2.erode(img, kernel, iterations=1)
8. 直方图均衡化
-
改善图像对比度:
equalized_img = cv2.equalizeHist(gray_img)
9. 对象检测
-
霍夫直线检测:
lines = cv2.HoughLines(img, rho, theta, threshold)
-
轮廓查找:
contours, hierarchy = cv2.findContours(thresh_img, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
10. 视频处理
-
打开摄像头并读取视频流:
cap = cv2.VideoCapture(0) # 打开默认摄像头 while True: ret, frame = cap.read() if ret: # 对frame进行处理... cv2.imshow('Video', frame) if cv2.waitKey(1) & 0xFF == ord('q'): break cap.release() cv2.destroyAllWindows()
-
-
-
-
-
-
-
-
-
The End