파이썬(Python)/opencv

[Python]OpenCV 이미지 마우스 클릭 좌표(위치) 값 확인(selectROI 함수)

끄적끄적아무거나 2022. 3. 25. 17:51
반응형

 

목차

     

     

    OpenCV 이미지 마우스 클릭 좌표 값 확인

     

    파이썬 OpenCV의 함수 중에 selectROI 함수는 이미지(image) 파일이나 그림 파일을 읽었을 때 마우스로 원하는 이미지를 클릭하면 해당 위치(Location) 값을 return해 줍니다.

     

    selectROI 함수 사용법은 아래와 같습니다. 

     

    Syntax>>

    cv2.selectROI(윈도우창 이름, 소스 이미지명, 격자형태 선택)

     

    윈도우창 이름은 imshow를 사용했을 때 처럼 selectROI도 이미지 창을 만들어 주는데 이미지 창(window)의 이름을 설정합니다. 

     

    소스 이미지명은 imread로 읽은 이미지 파일(image file)의 return 값을 저장한 객체 명을 입력 합니다. 격자 형태는 마우스를 클릭하면 사각형이 만들어 지는데 False를 사용하면 일반 사각형이 만들어지고 True를 사용하면 격자 형태의 사각형이 나옵니다.

     

    아래 예제를 보시면 쉽게 이해하실 수 있습니다.

     

     

     

     

    OpenCV 이미지 마우스 클릭 좌표 값 확인 예제

     

    파이썬 OpenCV를 사용해서 이미지의 클릭 위치를 찾는 예제를 실행하겠습니다. 

    예제에 사용할 이미지는 아래와 같습니다.

     

     

    예제 코드>>

    import cv2
    
    img = cv2.imread('race_car.jpg')    
    
    x_pos,y_pos,width,height = cv2.selectROI("location", img, False) 
    print("x position, y position : ",x_pos, y_pos)
    print("width, height : ",width, height)
    
    cv2.destroyAllWindows()

    3번 라인: imread 함수를 사용해서 race_car 이미지 파일을 불러옵니다.

    5번 라인: selecROI 함수를 사용해서 이미지 창을 만들고 마우스 이벤트(event) 발생 시 클릭 위치를 return해줍니다.

     

     

    결과>>

     

    Select a ROI and then press SPACE or ENTER button!
    Cancel the selection process by pressing c button!
    x position, y position :  840 474
    width, height :  314 157

     

    마우스를 사용해서 번호판을 클릭하였고 x축과 y축의 좌표 값과 너비(가로) 정보 높이(세로) 정보를 픽셀(pixel) 값으로 불러 왔습니다.

    반응형