OpenCV Review 02

2400·2025년 3월 8일
post-thumbnail

numpy 라이브러리에서는 vstack, hstack이 있다.
이들은 ndarray 형식의 배열을 결합할때 유용하게 사용된다.

v는 vertical, h는 horizontal로 수직,수평의 의미를 가진다. 따라서 vstack은 수직으로 행렬결합이 이뤄지고, hastack은 수평으로 결합이 이뤄진다.

# 사각형 그리기
cv.rectangle(img, (100, 100), (300, 300), (0, 0, 255), 2)
# cv.rectangle(이미지, 좌상단 좌표, 우하단 좌표, 색상(BGR), 두께)

# 텍스트 추가하기
cv.putText(img, "Hello", (50, 50), cv.FONT_HERSHEY_SIMPLEX, 1, (255, 0, 0), 2)
# cv.putText(이미지, 텍스트, 위치, 폰트, 크기, 색상(BGR), 두께)

def draw(event,x,y,flags,param):
    if event == cv.EVENT_LBUTTONDOWN:
        cv.rectangle(img,(x,y),(x+10,y+10),(0,0,255),2)            
    elif event == cv.EVENT_RBUTTONDOWN:
        cv.rectangle(img,(x,y),(x+10,y+10),(255,0,0),2)            
    cv.imshow("Drawing", img)
    
# 4. 마우스 콜백 함수 설정
cv.setMouseCallback("Window_Name", draw)

# 마우스 이벤트 상수
cv.EVENT_LBUTTONDOWN # 왼쪽 버튼 클릭
cv.EVENT_RBUTTONDOWN # 오른쪽 버튼 클릭
cv.EVENT_MBUTTONDOWN # 중간 버튼 클릭
cv.EVENT_MOUSEMOVE # 마우스 이동

# 이미지 위에 그림그리기 
def painting(event, x, y, flags, param):     
   if event == cv.EVENT_LBUTTONDOWN:         
       # 왼쪽 마우스 버튼을 눌렀을 때 현재 위치에 LColor 색상의 원을 그림
       cv.circle(img, (x, y), brushsize, LColor, -1)     
   elif event == cv.EVENT_RBUTTONDOWN:         
       # 오른쪽 마우스 버튼을 눌렀을 때 현재 위치에 RColor 색상의 원을 그림
       cv.circle(img, (x, y), brushsize, RColor, -1)     
   elif event == cv.EVENT_MOUSEMOVE and flags == cv.EVENT_FLAG_LBUTTON:         
       # 왼쪽 마우스 버튼을 누른 상태로 마우스를 움직일 때 LColor 색상의 원을 그림
       cv.circle(img, (x, y), brushsize, LColor, -1)     
   elif event == cv.EVENT_MOUSEMOVE and flags == cv.EVENT_FLAG_RBUTTON:         
       # 오른쪽 마우스 버튼을 누른 상태로 마우스를 움직일 때 RColor 색상의 원을 그림
       cv.circle(img, (x, y), brushsize, RColor, -1)  
profile
시즌 2의 공부기록 - Artificial Intelligence & AeroSpace

0개의 댓글