Programming/OpenCV

Pyqt5와 OpenCV 연동시 주의점

시작

영상처리 프로그램을 만들다보면 OpenCV에서 제공하는 imshow 함수만으로는 부족한 경우가 생긴다.(독립적인 GUI 프로그램을 만들고 싶다던지)

이럴떄 Pyqt5를 사용하면 간편하게 GUI 프로그램을 만들수 있다.

연동 방법은 잘 설명해둔 글이 있어 링크를 남긴다.

https://blog.xcoda.net/104

 

OpenCV(Python) + PyQt

OpenCV로 영상처리나 컴퓨터 비전을 처리하고 나서 결과를 화면에 표시하려면 결국 창을 띄워야 하는데, OpenCV의 imshow() 함수 만으로는 역부족인 경우가 많습니다. 파이썬 언어에서 인기 있는 멀티

blog.xcoda.net

 

주의점

주의할점은 Main thread에서는 Pyqt loop가 돌아가며 Pyqt widgets을 접근하고 있는데,

Sub thread에서 동시에 Pyqt widgets에 접근하면 Segmentation fault가 생길수 있다.

해결책

해결책은 Sub thread에서 직접적으로 Pyqt widgets에 접근하지 않고 List등에 데이터를 추가해놓았다가

Main thread에서 List에 저장된 데이터를 불러와서 Pyqt widgets을 업데이트 하는 것이다.

 

'Programming > OpenCV' 카테고리의 다른 글

OpenCV를 이용한 Image augmentation 구현  (0) 2021.05.24