import cv2
import numpy as np
기본 모듈 임포트
###함수를 윈도우에 나타나는 이미지에 연결##
def draw_circle(event,x,y,flags,param):
if event == cv2.EVENT_LBUTTONDOWN:#왼쪽 버튼이 눌렸다는 의미, 클릭되는 순간 이벤트가 발생
cv2.circle(img,(x,y),100,(0,255,0),-1) #현재 마우스 위치 찾음, 원반지름100, 색깔은 초록색,-1은 꽉찬원
#pass #이 함수를 이미지 콜백과 연결할때 자동으로 호출됨, 마우스 위치의x,y는 어디인지 물어봄
cv2.namedWindow(winname='my_draw') #이미지 콜백 연결, 윈도우가 같은 이름을 공유해서 draw_circle로 연결
cv2.setMouseCallback('my_draw',draw_circle)
###
#opencv로 실제이미지 보여주기
img = np.zeros((512,512,3),np.int8) #배경을 조금더 회색빛으로보이게함
while True:
cv2.imshow('my_draw',img)
if cv2.waitKey(20) & 0xFF == 27: #20초가 지나고 누군가가 esc키를 누르면 이 루프에서 빠져나감
break
cv2.destroyAllWindows()
#클릭할때마다 원이 나타남
새로운창으로 왼쪽클릭할 때마다 초록색 원이 나온다. 코드가 길어서 코드옆에 설명 적음
import cv2
import numpy as np
###함수를 윈도우에 나타나는 이미지에 연결##
def draw_circle(event,x,y,flags,param):
if event == cv2.EVENT_LBUTTONDOWN:
cv2.circle(img,(x,y),100,(0,255,0),-1)
elif event == cv2.EVENT_RBUTTONDOWN: #마우스 오른쪽 버튼이 눌리면 다른작업-> 파란원(BGR순이라 그럼)
cv2.circle(img,(x,y),100,(255,0,0),-1)
#같은 이미지를 출력하더라도 여러 이벤트를 확인할 수 있음
cv2.namedWindow(winname='my_draw')
cv2.setMouseCallback('my_draw',draw_circle)
###
#오픈씨비로 실제이미지 보여주기
img = np.zeros((512,512,3),np.int8)
while True:
cv2.imshow('my_draw',img)
if cv2.waitKey(20) & 0xFF == 27:
break
cv2.destroyAllWindows()
왼쪽을 클릭하면 초록색의 채워진원, 오른쪽을 클릭하면 파란색의 채워진원이 나온다.
출처: udemy x kmooc opencv 및 딥러닝을 이용한 computer vision 파이썬
'Deep Learning > Computer Vision' 카테고리의 다른 글
Gradients (0) | 2023.07.16 |
---|---|
Image Blurring & Smoothing (0) | 2023.07.16 |
Image Binary (0) | 2023.07.16 |
파이썬 이미지에 도형 그리기 (0) | 2023.07.09 |
Image and Numpy (0) | 2023.07.08 |