Program/OPEN_CV

[Open CV] OpenCV-Python 기초 사용법 _ 트랙바 사용하기

사막여유 2022. 5. 3. 20:50
728x90

 

트랙바라고 하는 것은 사용자가 지정한 범위의 값을 컨트롤할 수 있는 컴포넌트라고 할 수 있다.

트랙바 또는 슬라이더 컨트롤이라고도 불린다.

그리고 OpenCV에서 제공하는 유일한 그래픽 사용자 인터페이스라고 볼 수 있다.

 

출처 : https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=kjkim9612&logNo=221430544082

 

트랙바를 사용하기 위해서는 cv2.createTrackbar 라는 함수를 사용해야한다.

( trackbarname, windowname, value, count, onchange ) 의 인자로 이루어져 있다.

value는 트랙바의 위치 초기값이고 

count 는 트랙바의 최대값 ( 최소값은 항상 0으로 고정 )

onCange는 트랙바의 위치가 변경될때 마다 호출할 콜백함수의 이름이다.

 

그리고 트랙바 생성도 마찬가지로 

imshow 를 한뒤에 createTrackbar를 호출해주어야한다.

 

위 코드처럼 level이라는 트랙바를 생성해서 image라는 이미지를 불러온뒤

0 에서부터 시작해서 16단계로 나눠준다.

그리고 한단계씩 실행될때 마다 on_level_changed라는 함수를 호출 해라 라는 의미의 코드이다. 

 

on_level_chagned의 함수를 살펴보면

pos라는 트랙바의 값을 받아 그 값에 16을 곱해서 사용하게 되는데

이를 img의 영상에 [:,:]라고 곱해서 출력할 수 있다.

 

그리고 255를 넘는 값이 img에 들어왔을때는 256 -> 0 으로 변환되기때문에

만약 255를 넘는 값이 나온다면 강제로 255로 셋팅해주는 처리를 꼭 해주어야 한다.

 

그리고 np.clip 이라는 함수를 사용할수도 있는데np.clip(level,0,255) 라고 한다면 0보다 작은 값은 무조건 0255보다 큰값은 무조건 255로 변환시켜 주는 함수이다.

 

 * 이처럼 자동으로 최대 최소값을 지정해주는 것을 포화연산이라고 한다.

 

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.

https://bit.ly/3L3avNW

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr

 

728x90