ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • OpenCV 강좌 C++ & Python - 선분을 그리는 line 함수 사용법
    OpenCV/OpenCV C++&Python 강좌 2019. 8. 11. 14:35



    OpenCV의 선분을 그리는 line함수를 C++과 Python에서 사용하는 방법을 설명합니다.


    2015.  1. 2 - 최초 작성

    2018.  7. 16 

    2019.  7. 17

    2019.  8. 11 - C++ 코드 추가




    line 함수는 다음과 같은 파라미터를 가집니다. 


          cv.line( img,        선분이 그려질 이미지 

                      (x1, y1),   선분의 시작점

                      (x2, y2),   선분의 끝점

                      color,      선분의 색( B, G, R )

                      thickness,  선굵기(디폴트값 1)

                      lineType,   디폴트값 cv.LINE_8(=8-connected line)

                      shift )     디폴트값 0




    간단한 예제입니다.

    나중에 그린 빨간색 선이 위에 그려지는 것을 볼 수 있습니다. 





    나중에 그려진 것이 위에 그려진다는 것은 중요한 개념입니다.  

    이 원리를 적용하여 이미지 파일을 불러온 다음 원하는 영역(예를 들어 얼굴)에 사각형이나 원을 그릴 수 있습니다. 




    Python


    import numpy as np
    import cv2 as cv


    # 컬러 이미지를 저장할 넘파이 배열을 생성합니다.
    width = 500
    height = 500
    bpp = 3

    img = np.zeros((height, width, bpp), np.uint8)


    # 화면 중앙을 가로질러 선굵기 3인 대각선을 두개 그려 교차하도록합니다. 
    cv.line(img, (width-1, 0), (0, height-1), (255, 0, 0), 3)
    cv.line(img, (0, 0), (width-1, height-1), (0, 0, 255), 3)


    cv.imshow("result", img)
    cv.waitKey(0);



    C++


    #include <opencv2/opencv.hpp>


    using namespace cv;


    int main()
    {
    // 컬러 이미지를 저장할 Mat 개체를 생성합니다.
    int width = 500;
    int height = 500;

    Mat img(height, width, CV_8UC3, Scalar(0, 0, 0));


    // 화면 중앙을 가로질러 선굵기 3인 대각선을 두개 그려 교차하도록합니다. 
    line(img, Point(width-1, 0), Point(0, height-1), Scalar(255, 0, 0), 3);
    line(img, Point(0, 0), Point(width-1, height-1), Scalar(0, 0, 255), 3);


    imshow("result", img);
    waitKey(0);

    return 0;
    }




    포스트 작성시에는 문제 없었지만 이후 문제가 생길 수 있습니다.
    댓글로 알려주시면 빠른 시일내에 답변을 드리겠습니다.

    여러분의 응원으로 좋은 컨텐츠가 만들어집니다. 지금 본 내용이 도움이 되었다면 유튜브 구독 부탁드립니다. 감사합니다 : )

    유튜브 구독하기


    댓글 0

Designed by Tistory.