[ Python OpenCV ] 파이썬 오픈씨브이 마우스 이벤트 - cv2.setMouseCallback
1. OpenCV 가져오기
2. 이미지 읽어와 출력
3. 마우스 콜백
x : 마우스 이벤트의 X좌표입니다.
y : 마우스 이벤트의 y좌표입니다.
flags : cv::MouseEventFlags 상수 중 하나 (마우스 또는 외부 입력 키)
param : 사용자 선택적 매개변수 데이터
4. 이미지 사이즈 변경 마우스 함수 작성
5. 마우스 함수 마우스 콜백 연결
"Bird" : 뷰어 타이틀 이름
Mouse_Event : 마우스 함수
matBird : 콜백에 전달되는 선택적 매개변수
6. 마우스 이벤트 타입 정리
cv.EVENT_MOUSEMOVE 마우스 포인터가 창 위로 이동
cv.EVENT_LBUTTONDOWN : 마우스 왼쪽 버튼 다운
cv.EVENT_RBUTTONDOWN : 마우스 오른쪽 버튼 다운
cv.EVENT_MBUTTONDOWN : 마우스 가운데 버튼 다운
cv.EVENT_LBUTTONUP : 마우스 왼쪽 버튼 업
cv.EVENT_RBUTTONUP : 마우스 오른쪽 버튼 업
cv.EVENT_MBUTTONUP : 마우스 가운데 버튼 업
cv.EVENT_LBUTTONDBLCLK : 마우스 왼쪽 버튼 더블 클릭
cv.EVENT_RBUTTONDBLCLK : 마우스 오른쪽 버튼 더블 클릭
cv.EVENT_MBUTTONDBLCLK : 마우스 가운데 버튼더블 클릭
cv.EVENT_MOUSEWHEEL : 마우스 휠 Flag 양수 및 음수 값은 휠 방향
7. 마우스 이벤트 플래그 정리
cv.EVENT_FLAG_LBUTTON : 마우스 왼쪽 버튼 눌려져 있음
cv.EVENT_FLAG_RBUTTON : 마우스 오른쪽 버튼이 눌려져 있음
cv.EVENT_FLAG_MBUTTON : 마우스 가운데 버튼이 눌려져 있음
cv.EVENT_FLAG_CTRLKEY : CTRL 키를 눌렀음
cv.EVENT_FLAG_SHIFTKEY : SHIFT 키를 눌렀음
cv.EVENT_FLAG_ALTKEY : ALT 키를 눌렀음
8. 소스 전체
import cv2 as cv
#이미지 읽어오기
matBird = cv.imread('Bird.jpg')
#이미지 사이즈 변경 및 출력
nSize = 500
matBird = cv.resize(matBird, dsize=(nSize, nSize))
cv.imshow("Bird", matBird)
#마우스 이벤트 함수
def Mouse_Event(event, x, y, flags, param):
global nSize #전역 변수로 사용
if event == cv.EVENT_LBUTTONDOWN: #왼쪽 클릭
nSize -= 10
elif event == cv.EVENT_RBUTTONDOWN: #오른쪽 클릭
nSize += 10
#이미지 사이즈 변경 및 출력
matBird = cv.resize(param, dsize=(nSize, nSize))
cv.imshow("Bird", matBird)
#뷰어 마우스 이벤트 세팅
cv.setMouseCallback("Bird", Mouse_Event, matBird)
#종료 방지
cv.waitKey()
댓글
댓글 쓰기