小工具知识网

当前位置: 首页 > 行业知识 > 【OpenCV基础知识点总结】

行业知识

【OpenCV基础知识点总结】

2026-11-08 09:36:52 来源:互联网转载

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'):            breakcap.release()cv2.destroyAllWindows()

上一篇:详细分析Python中的enumerate()函数(附多个Demo)

下一篇:香港主机怎么样?