open_highgui 기능 3가지

open_highgui 기능 3가지

OpenCV의 또 다른 중요한 모듈인 open_highgui는 그래픽 사용자 인터페이스(GUI) 기능을 제공하는 라이브러리입니다. 이 모듈은 이미지와 비디오 데이터를 표시하고, 사용자 입력을 처리하며, 간단한 상호작용을 가능하게 해줍니다. open_highgui는 주로 컴퓨터 비전 애플리케이션의 디버깅, 시각화, 결과 확인 등을 위해 사용됩니다.

open_highgui

설명

  • open_highgui는 OpenCV 라이브러리에서 제공하는 고수준 GUI(그래픽 사용자 인터페이스) 기능을 제어하는 모듈입니다. OpenCV는 컴퓨터 비전 및 이미지 처리 작업을 위한 인기 있는 오픈 소스 라이브러리로, open_highgui 모듈은 영상 및 비디오 파일을 읽고, 디스플레이하며, 사용자 입력을 처리하는 기능을 제공합니다.

open_highgui 주요 기능

  1. 영상 및 비디오 파일 읽기: open_highgui는 다양한 형식의 영상 및 비디오 파일을 읽을 수 있습니다. 이를 통해 이미지 또는 비디오 데이터를 읽어서 OpenCV에서 사용할 수 있는 형식으로 변환합니다.
  2. 디스플레이: open_highgui를 사용하여 읽은 영상이나 비디오를 화면에 디스플레이할 수 있습니다. 이를 통해 영상 또는 비디오 데이터를 시각적으로 확인하고 분석할 수 있습니다.
  3. 사용자 입력 처리: open_highgui는 마우스 및 키보드 이벤트를 처리할 수 있습니다. 사용자 입력에 따라 특정 동작을 수행하거나 영상 처리 알고리즘에 영향을 줄 수 있습니다.
  • 예를 들어, 다음은 open_highgui를 사용하여 이미지 파일을 읽고 화면에 디스플레이하는 간단한 코드의 예입니다.
import cv2

image = cv2.imread('image.jpg')
cv2.imshow('Image', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
  • 이 코드에서 cv2.imread() 함수를 사용하여 ‘image.jpg’ 파일을 읽고, cv2.imshow() 함수를 사용하여 이미지를 ‘Image’라는 창에 디스플레이합니다. cv2.waitKey(0)은 사용자가 아무 키나 누를 때까지 창을 유지하도록 합니다. 마지막으로 cv2.destroyAllWindows() 함수를 사용하여 모든 창을 닫습니다.
  • 위의 코드는 이미지를 읽고 디스플레이하는 간단한 예시이며, open_highgui는 영상 처리 및 컴퓨터 비전 애플리케이션에 다양한 기능을 제공합니다.

세부 기능

open_highgui 모듈에는 이미지와 비디오를 다양한 방식으로 디스플레이하고 제어할 수 있는 다양한 기능이 있습니다.

  1. 창 생성 및 디스플레이:
    • cv2.namedWindow(window_name, flags): 새로운 창을 생성합니다. window_name은 창의 이름을 지정하고, flags는 창의 속성을 설정합니다.
    • cv2.imshow(window_name, image): 지정한 창에 이미지를 디스플레이합니다.
    • cv2.moveWindow(window_name, x, y): 창을 지정한 좌표로 이동시킵니다.
    • cv2.resizeWindow(window_name, width, height): 창의 크기를 지정한 너비와 높이로 조정합니다.
    • cv2.destroyWindow(window_name): 지정한 창을 닫습니다.
    • cv2.destroyAllWindows(): 모든 창을 닫습니다.
  2. 키보드 및 마우스 이벤트 처리:
    • cv2.waitKey(delay): 키보드 입력을 대기합니다. delay는 입력을 기다리는 시간(밀리초)을 지정합니다. 0일 경우, 사용자가 아무 키나 누를 때까지 기다립니다.
    • cv2.getTrackbarPos(trackbar_name, window_name): 트랙바의 현재 위치 값을 가져옵니다.
    • cv2.setMouseCallback(window_name, callback): 지정한 창에서 마우스 이벤트를 처리하기 위한 콜백 함수를 등록합니다.
  3. 비디오 디스플레이 및 제어:
    • cv2.VideoCapture(index or filename): 비디오 캡처 객체를 생성합니다. index는 캡처 장치의 인덱스(0부터 시작)이거나 비디오 파일 이름을 지정할 수 있습니다.
    • cv2.VideoWriter(filename, fourcc, fps, frameSize): 비디오 저장을 위한 객체를 생성합니다. filename은 저장할 비디오 파일 이름을, fourcc는 비디오 코덱을, fps는 프레임 속도를, frameSize는 프레임 크기를 지정합니다.
    • cv2.CAP_PROP_FRAME_COUNT: 비디오 파일의 총 프레임 수를 가져오는 속성입니다.
    • cv2.CAP_PROP_POS_FRAMES: 비디오 파일에서 현재 프레임 위치를 설정하거나 가져오는 속성입니다.
    • cv2.CAP_PROP_FPS: 비디오 파일의 프레임 속도를 가져오는 속성입니다.
  4. 트랙바:
    • cv2.createTrackbar(trackbar_name, window_name, initial_value, max_value, callback): 지정된 창에 트랙바를 생성합니다. trackbar_name은 트랙바의 이름, window_name은 트랙바가 속한 창의 이름, initial_value는 초기 값, max_value는 최대 값입니다. 이를 통해 사용자가 트랙바를 조작하여 값을 변경할 수 있습니다. 콜백 함수는 트랙바 값이 변경될 때 호출됩니다.
  5. 창 속성 설정:
    • cv2.setWindowProperty(window_name, prop_id, prop_value): 창의 속성을 설정합니다. 예를 들어, prop_idcv2.WINDOW_FULLSCREEN을 전달하여 창을 전체 화면으로 설정할 수 있습니다.
  6. 마우스 콜백 함수:
    • cv2.setMouseCallback(window_name, callback): 지정한 창에서 마우스 이벤트를 처리하기 위한 콜백 함수를 등록합니다. 콜백 함수는 마우스 이벤트가 발생할 때 호출됩니다. 이를 통해 마우스 클릭, 이동, 버튼 누름 등의 이벤트를 감지하고 처리할 수 있습니다.
  7. 키보드 입력 제어:
    • cv2.waitKey(delay): 키보드 입력을 대기합니다. delay는 입력을 기다리는 시간(밀리초)을 지정합니다. 특정 키 입력에 대한 조건문을 사용하여 키 이벤트를 처리할 수 있습니다.

  • 위에서 언급한 기능은 open_highgui의 주요 기능 중 일부에 불과하며, 더 많은 기능과 옵션이 있습니다. 이를 통해 사용자는 영상 및 비디오 데이터를 제어하고 디스플레이하는 고수준 GUI 기능을 쉽게 활용할 수 있습니다.
  • 추가적인 예제와 자세한 사용법은 OpenCV 공식 문서 및 예제 코드를 참조하시면 더 많은 정보를 얻을 수 있습니다.

참고 사이트

  • OpenCV Library의 전반적인 설명은 여기 링크를 참고하시기 바랍니다.
  • OpenCV Tutorial

https://docs.opencv.org/4.x/d9/df8/tutorial_root.html

  • OpenCV 공식 홈페이지는 아래 링크에 있습니다.


Opencv 책이 필요하신 분들은 아래 링크를 참고바랍니다.

OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝, 길벗 [인사이트]파이썬으로 만드는 OpenCV 프로젝트, 인사이트 C#과 파이썬을 활용한 OpenCV 4 프로그래밍, 위키북스 알짜배기 예제로 배우는 OpenCV:파이썬과 C++로 마스터하는 OpenCV 프로그래밍, 비제이퍼블릭 OpenCV-Python으로 배우는 영상처리 및 응용, 생능출판사, 9788970504414, 정성환,배종욱 공저 OpenCV 4를 활용한 머신러닝 입문:OpenCV 4 파이썬 scikit-learn을 사용해 이미지 처리 앱을, 에이콘출판 비전과 이미지 처리 앱을 만들기 위한 OpenCV 4 마스터, 에이콘출판

“이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.”

Back to top