윈도우 관련
#윈도우 생성
cv2.nameWindow(‘창 이름’, cv2.WINDOW_AUTOSIZE) # 뒤는 생략 가능 크기조정옵션임
cv2.moveWindow(‘창 이름’, x, y) # 윈도우 위치 지정
cv2.imshow(‘창 이름’, 출력물) # 행렬 원소를 영상으로 표시
cv2.resizeWindow(‘창 이름’, x, y) # 윈도우 크기 변경
cv2.waitKey(0) # 키 이벤트 대기
cv2.destroyAllWindows() # 열린 윈도우 파괴
이미지 생성
image = np.zeros((x, y), @) # 원소값이 0인 행렬 생성 @ -> np.uint8 / np.float
image = np.ones((x, y), @) # 원소값이 1인 행렬 생성
image = np.full((x, y), 색상값, @) # 색상 값 기준으로 영상 생성 전부 채우기
image[:] = 값 # 바탕색 지정
키보드 이벤트 제어
ord(‘문자’) # switch case와 같이 사용 받은 문자를 아스키 코드로 변환
마우스 이벤트 제어
def onMouse(event, x, y, flags, param=None) # event = cv2.EVENT_종류 / flags = 특수키 ctrl, alt, shift 입력 여부
cv2.setMouseCallback(‘창 이름’, onMouse) # 마우스 콜백 함수
트랙바 제어
cv2.createTrackbar(‘트랙바 이름’, 창 이름, 슬라이더 위치, 최대값, 값 변경시 호출 함수)
도형
# 사각형
cv2.rectangle(image, (y1,x1), (y2,x2), color, 3, cv2.LINE_4) # 사각형 좌표값 기준 4방향 연결선
cv2.rectangle(image, (y1,x1,y2,x2), color, 3, cv2.LINE_8) # 사각형 시작좌표와 2는 증가값만큼 이동.
cv2.rectangle(image, (y1,x1,y2,x2), color,, cv2.FILLED) # 사각형 시작좌표와 2는 증가값만큼 이동. 내부 채움
# 원
cv2.circle(image, 중심좌표, 반지름, color #,선 두께, 선의 형태, 시프트 연산) # 선의 형태는 직전의 옵션과 동일
cv2.circle(image, 중심좌표, 반지름, color, -1) # 원 내부를 채움
# 타원 그리기
cv2.ellipse(image, 중심좌표, (x 반지름, y 반지름), 타원의 각도, 호의 시작각도, 호의 종료 각도, color
#, 선의 두께, 선의 형태, 시프트연산)
# 0, 360 = 타원 / 한바퀴를 다 안돌면 호
# 직선
cv2.line(image, (y1,x1), (y2,x2), color) # 직선 그리기
cv2.line(image, (y1,x1), (y2,x2), color, 3, cv2.LINE_AA) # 직선 그리기 : 계단현상 감소
영상 처리과정 : 영상 파일을 읽어 들여 행렬에 저장
cv2.imread(“파일 위치”, flags) # flags: 행렬로 변환될 때 컬러타입 결정
# cv2.IMREAD_UNCHANGED 영상 그대로 반환
# cv2.IMREAD_GRAYSCALE 명암도 반환 8bit
# cv2.IMREAD_COLOR 컬러 영상으로 반환 # cv2.IMREAD_ANYDEPTH 입력 파일에 정의된 깊이에 따라 16bit, 32bit 영상으로 변환, 설정되지 않으면 8bit로 반환
# cv2.IMREAD_ANYCOLOR 정의된 타입을 반환
cv2.imwrite(“파일 위치 저장할 이름”, 저장하고자 하는 행렬 #,params) # cv2.IMWRITE_JPEG_QUALITY
# cv2.IMWRITE_PNG_COMPRESSION
# cv2.IMWRITE_PXM_BINARY
잘못된 기록이 존재할 수 있습니다.