공부/OpenCV

openCV 윈도우 관련 함수

GUuu9 2022. 6. 13. 11:27

윈도우 관련

 

#윈도우 생성

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

 

잘못된 기록이 존재할 수 있습니다.