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)