머신러닝과 기술적 분석

Image Gradient 본문

Machine Learning

Image Gradient

BetterToday 2017. 8. 16. 23:08
728x90

Image Gradient 의 방향 (orientation) 의 의미가 혼란스러울 때가 있다. 정리해보자.

1. Image Gradient 의 정의

An image gradient is a directional change in the intensity or color in an image. 라고 위키피디아에 정의 되어있다.

2. Image Gradient 를 구하는 방법






3. orientation 의 방향



  • Y축은 아래방향이 증가하는 방향임에 주의하자.

4. Python 예제

아래와 같은 code 로 확인할 수 있다.


    def get_grad_center_pixel(image):
        dx = cv2.Sobel(image, ddepth=cv2.CV_64F, dx=1, dy=0, ksize=1)
        dy = cv2.Sobel(image, ddepth=cv2.CV_64F, dx=0, dy=1, ksize=1)
        theta = np.arctan2(dy, dx) * 180 / np.pi
        return theta[1,1]

    img = np.array([[255,   0,   0],
                    [255, 255,   0],
                    [255, 255, 255]
                    ], dtype="uint8")
    print get_grad_center_pixel(img)        #135.0

    img = np.array([[255, 255,   0],
                    [255, 255,   0],
                    [255, 255,   0]
                    ], dtype="uint8")
    print get_grad_center_pixel(img)        #180.0

    img = np.array([[255, 255, 255],
                    [255, 255,   0],
                    [255,   0,   0]
                    ], dtype="uint8")
    print get_grad_center_pixel(img)        #-135.0

    img = np.array([[255, 255, 255],
                    [255, 255, 255],
                    [  0,   0,   0]
                    ], dtype="uint8")
    print get_grad_center_pixel(img)        #-90.0


    img = np.array([[255, 255, 255],
                    [  0, 255, 255],
                    [  0,   0, 255]
                    ], dtype="uint8")
    print get_grad_center_pixel(img)        #-45.0

    img = np.array([[0,  255, 255],
                    [0,  255, 255],
                    [0,  255, 255]
                    ], dtype="uint8")
    print get_grad_center_pixel(img)        #0.0

    img = np.array([[0,    0, 255],
                    [0,  255, 255],
                    [255,255, 255]
                    ], dtype="uint8")
    print get_grad_center_pixel(img)        #45.0

    img = np.array([[0,    0,   0],
                    [255,255, 255],
                    [255,255, 255]
                    ], dtype="uint8")
    print get_grad_center_pixel(img)        #90.0


728x90
반응형

'Machine Learning' 카테고리의 다른 글

python 에서 RANSAC 으로 polynomial fitting 방법  (0) 2017.09.16
Likelihood, ML, MAP 개념 정리  (0) 2017.08.16
image morphological operations  (0) 2017.08.16
mAP (mean average precision) 의 개념  (6) 2017.08.16
Precision / Recall  (2) 2017.08.16
Comments