윈도우 제어와 이벤트 처리 , 그리기 함수
인간과 컴퓨터의 상호작용 = HCI / Human + Computer + Interface
영상처리 - > 2차원 행렬에 대한 연산.
OpenCV는 윈도우가 활성화된 상태에서만 마우스나 키보드 이벤트를 감지가능.
cv2.namedWindow() - 함수에 윈도우 이름을 지정하여 윈도우를 생성 -> 생성된 이름으로 창크기 변경, 창닫기, 창 이동 등을 제어할 수 있으며 이벤트 발생도 해당 윈도우 이름으로 제어함.
함수들 이름 한번 씩 읽어보기
imshow(winname, mat) –> None 이름으로 윈도우를 생성하고 영상을 표기함.
mat(numpy.ndarry) 윈도우에 표시되는 영상(행렬이 화소값을 밝기로 표시)
destoryWindow(winname) -> None
: 인수로 지정된 타이틀 윈도우 파괴
destoryAllWindows() -> None
: HighGUI( OpenCV 지원 라이브러리)로 생성된 모든 윈도우 파괴
moveWindow(winname, x, y) -> None
: winname 이름의 윈도우를 지정된 위치(x,y)로 이동, 이동되는 윈도우의 기준 위치는 좌측 상단임.
resizeWindow(winname, width, height) -> None
: 윈도우의 크기를 재조정함.
width, height 변경 윈도우의 가로, 세로 크기.
waitKey ()는 키보드 이벤트 대기 함수
:0이면 무한대기
1차시 끝
----------------------- 2차시 -------------------------
이벤트 처리를 위해 콜백 (callback) 함수를 사용함.
-콜백 함수는 개발자가 시스템 함수를 직접 호출하는 방식이 아니라, 어떤 이벤트가 발생하는 특정 시점에 도달했을 때
시스템이 개발자가 등록한 함수를 호출하는 방식.
OpenCV에서는 일반적인 콜백함수가 아닌 –
cv2.waitKey함수와 cv2.waitKeyEx()함수를 제공함.
두 함수는 지연시간을 지정하여 호출하면 키 이벤트에 해당하는 코드값을 반환
cv2.waitKey함수([, delay]) –> retval
delay(ms, millisecond) 시간만큼 키 입력을 대기하고, 키 이벤트가 발생하면 해 키 값 반환
delay <= 0 키 이벤트 발생까지 무한대기
cv2.waitKetEx([, delay]) -> retval
: waitKey()와 동일하지만, 전체 키 코드를 반환함(화살표 키 등을 입력 받을 때 사용가능)
주의:키보드의 키 입력을 받는 윈도우가 활성화되어 있지 않으면 이벤트가 발생하지 않음을 주의(실행 후 윈도우를 클릭하여 활성화시킨 후 키보드의 키를 눌러 확인)
마우스 이벤트 제어;
사용자가 setMouseCallback()함수를 통해 시스템에 등록
setMouseCallback(winname, onMouse) param=None)
여기서 winname과 onMouse는 아래 이벤트와 같아야한다.
winname = 이벤트 발생을 확인할 윈도우 이름
onMouse = 마우스 이벤트를 처리하는 콜백함수 이름
param = 이벤트 처리 함수로 전달할 추가적인 사용자 정의 함수
getTrackbarPos(trackbarname, winname) -> retval
: 지정한 트랙바의 슬라이더 위치를 반환함
setTrackvarPos
: 지정한 트랙바의 슬라이더 위치를 설정
트랙바(trackbar) : 일정한 범위에서 특정한 값을 선택할 때 사용하는 일종의 스크롤바, 슬라이더 바
createTrackbar()함수로 생성.
★ 트랙바 개념
원래는 RGB 순서지금 OpenCV에서 BGR 이미지 순서임
R빨강
G초록
B파랑 인데.
OpenCV에서는 역순의 이미지이다.
--------------3차시---------------
그리기 함수
선형타입과 비트 시프트
아래 연결 방식
실수 형태로 소수점이 발생하기에 정수 연산으로만 선을 그릴 수 있도록 개발된 알고리즘은?
: 브레젠험 알고리즘(선을 그리는 알고리즘)
계단 현상 없애기 -> 안티 에일리어싱
영상에다가 글자를 쓰는 함수는? cv2.putText()
RGB가 아니라 BGR임
cv2.circle – 행렬에 원을 그려주는 함수(OpenCV에서 사용)
그리기는 색상, 함수, 좌표, 인수를 설정하면 도형이 나온다.
cv2.ellipse – 타원을 그리는 함수의 인수 지정이 조금 복잡함
ellipse(image, pt1 , size, 0, 30, 270, orange ,4) # 호 그리기
0은 기울기 = 0이니까 원 그대로
30은 시작 각도 30도면 가로가 0
270은 끝 각도 , orange는 색상
-------------------------- 3주차 끝 ---------------------
'📜✏️노트 자리없어서 적는 IT 지식📜✏️' 카테고리의 다른 글
컴퓨터 비전(computervision) - 5주차(파이썬 연산 내용) (0) | 2024.11.23 |
---|---|
컴퓨터 비전(computer vision) - 4주차 셤 공부 (0) | 2024.11.22 |
컴퓨터 비전(computer vision) - 1 & 2주차 셤 공부 (7) | 2024.11.20 |
11-18 (특강 프로젝트 & 이력서 등등 면접 준비하는 방법) (0) | 2024.11.19 |
졸업작품 PPT 제작 & 수정 (0) | 2024.11.17 |