zoukankan      html  css  js  c++  java
  • 学习笔记 | CarND Project

    (Udacity Learning Note: CarND-Term1 Project 4)

    Camera Calibration & Distortion Correction

    Two Types of Distortion

    • Radial Distortion
    • Tangential Distortion

    Using OpenCV

    Example

    • Finding chessboard corners (for an 8x6 board):
    ret, corners = cv2.findChessboardCorners(gray, (8,6), None)
    
    • Drawing detected corners on an image:
    img = cv2.drawChessboardCorners(img, (8,6), corners, ret)
    
    • Camera calibration, given object points, image points, and the shape of the grayscale image:
    ret, mtx, dist, rvecs, tvecs = cv2.calibrateCamera(objpoints, imgpoints, gray.shape[:-1], None, None)
    
    • Undistorting a test image:
    dst = cv2.undistort(img, mtx, dist, None, mtx)

    Perspective Transform

    Commonly Used View

    • Front-facing View (Normal View)
    • Top-down View (Bird-eye View)

    Why?

    • Because ultimately we want to measure the curvature of the lines, and to do that, we need to transform to a top-down view.

    Apply Perpective Transform using OpenCV

    • Compute the perspective transform, M, given source and destination points:
      M = cv2.getPerspectiveTransform(src, dst)
    
    • Compute the inverse perspective transform:
      Minv = cv2.getPerspectiveTransform(dst, src)
    
    • Warp an image using the perspective transform, M: (warp v. 扭曲)
      warped = cv2.warpPerspective(img, M, img_size, flags=cv2.INTER_LINEAR)

    Gradient Threshold

    Sobel Operator

    • The Sobel operator is at the heart of the Canny edge detection algorithm.

    Example use of Sober operator

    • Calculate the derivative in the x direction (the 1, 0 at the end denotes x direction):

      sobelx = cv2.Sobel(gray, cv2.CV_64F, 1, 0)

    •  Calculate the derivative in the y direction (the 0, 1 at the end denotes y direction):

      sobely = cv2.Sobel(gray, cv2.CV_64F, 0, 1)

    •  Calculate the absolute value of the x derivative:

      abs_sobelx = np.absolute(sobelx)

    •  Convert the absolute value image to 8-bit:

      scaled_sobel = np.uint8(255*abs_sobelx/np.max(abs_sobelx))

    Direction of Gradient

    • The direction of the gradient is simply the inverse tangent (arctangent) of the y gradient divided by the x gradient: 
      • arctan(sobely​​/sobelx​​).

    Color Space

    • RGB
    • HSV
    • HLS

    Reference

    1. Wikipedia: HSL and HSV
  • 相关阅读:
    最近迷上用dvd字幕学习英语
    原始套接字
    c语言socket编程
    inet_aton和inet_network和inet_addr三者比较
    用man来查找c函数库
    ubuntu的系统日志配置文件的位置
    复制文件
    vim复制粘贴解密(转)
    vim的自动补齐功能
    两个数据结构ip和tcphdr
  • 原文地址:https://www.cnblogs.com/casperwin/p/7421107.html
Copyright © 2011-2022 走看看