OpenCV 적용하기
OpenCV
와 tkinter
를 결합해 GUI로 표시할 수 있습니다.
이때 PIL
라이브러리를 활용합니다.
PIL
모듈은 Python Imaging Library로, 다양한 이미지 파일 형식을 지원하는 범용 라이브러리입니다.
OpenCV & PIL
상단에 from PIL import Image
, from PIL import ImageTk
를 사용하여 PIL 모듈
을 포함시킵니다.
OpenCV
의 numpy
형식 이미지를 표시하려면 PIL
모듈을 사용합니다.
tkinter
의 색상 체계는 OpenCV
와 다르게 RGB
패턴을 사용합니다.
그러므로, BGR에서 RGB로 변환합니다.
PIL.Image
모듈의 fromarray
함수를 활용해 Numpy
배열을 Image
객체로 변환합니다.
PIL.ImageTk
모듈의 PhotoImage
함수를 활용해 tkinter
와 호환되는 객체로 변환합니다.
라벨(Label)
의 image
매개변수에 imgtk
를 적용해 이미지를 표시할 수 있습니다.
버튼(Button)
의 command
매개변수에 convert_to_tkimage
함수를 실행시킵니다.
global src
를 적용해 src
변수를 가져옵니다.
이진화
를 처리한 다음, 앞의 형식과 동일하게 tkinter
와 호환되는 이미지로 변환합니다.
이미지를 갱신하기 위해 config
를 통해 image
매개변수를 설정합니다.
또한, 가비지 컬렉터(garbage collector)
가 이미지를 삭제하지 않도록 라벨의 image
매개변수에 imgtk
를 한 번 더 등록합니다.
출력 결과
댓글 남기기