안녕하세요.
이전부터 영상처리 관련된 내용 무관심하고 있다가 하드웨어를 통한 자동화는 어느 정도 한계가 있다고 생각되었습니다. 그래서 영상처리를 통한 감지를 찾아보다가 리눅스에서도 사용할 수 있는 Qt와 OpenCV 내용이 있어 찾게 되었습니다.
대략적 계획으로는 먼저 책("Qt 5 and OpenCV 4 Computer Vision Projects") 내용을 습득하는 것이고, 예제 소스도 검증해 보고 OpenCV 이용해 보는 것입니다. 또한 라즈베리 파이(Raspberry Pi)에 이식시켜 영상처리로 작은 감지센서를 만들어 보는 것으로 해볼 까 합니다.
책 내용은 기본적으로 리눅스 환경에서 진행되고 있습니다. 그 부분을 감안하셔야 할 듯합니다. 실습은 Windows10에서 하였습니다.
책 예제 소스는 github에 공유되어 있고, 최종 결과물도 유튜브에 있으니 Qt와 OpenCV로 어떤 것을 만들 수 있는지 확인할 수 있습니다.
1. 예제 샘플 실행하기 전
Qt 6 버전이 올라와서 하위 호환은 기본적으로 될 것이라고 생각하고 설치한 후 소스코드를 실행해 보았습니다. 그런데 이런저런 라이브러리와 함수가 없다고 에러가 나타납니다.
대체 클래스나 함수를 찾으려면 시간이 걸릴 걸로 예상되어 Qt 5.15 버전을 받아서 설치하려고 하려고 했는데, Qt5.15 버전부터는 단독 설치 파일을 제공하지 않는다고 하는 것 같습니다. 온라인에서 다운로드하여서 설치하는 버전으로 바뀐 것 같습니다. 그런데 온라인 버전도 컴파일러 선택하지 않을 경우 전체 다운로드하면 오래 걸립니다.
그래서 5.12 버전이 Offline windows 설치 버전 3.7G를 받아서 설치했습니다.
(공식적 Offline 설치 가능한 마지막 버전 같으나 비즈니스 버전으로는 배포 파일이 만들어지고 있는 것으로 보입니다.)
OFFLINE_README.txt 파일 내용입니다.
Due to The Qt Company offering changes, open source offline installers are not available any more since Qt 5.15.
Read more about offering changes in the https://www.qt.io/blog/qt-offering-changes-2020 blog.
If you need offline installers, please consider our new Qt for Small Business offering:
https://www.qt.io/blog/available-now-qt-for-small-businesses
그냥 다운로드하면 엄청 느린 곳에서 다운로드하기 때문에 미러링 된 곳 중에서 빠른 곳을 찾아 다운로드하면 됩니다.
예를 들면,
그래서 현재 시점에서 책 내용 예제를 빠르게 테스트할 수 있는 버전으로 Qt 5.12.11 추천드립니다.
그리고 설치 시 MinGW나 MSVC2017 등 버전을 선택하셔야 QtCreator 상에서 컴파일이 가능합니다. 디폴트로 선택이 되어 있지 않아서 그냥 Next로 하면 컴파일이 되지 않을 수 있습니다.
2. 구성 설명
1) 컴파일러 환경 설명
- 초반부 ImageViewer를 만들기 위한 .pro 파일을 생성하기 위해 qmake 설명하고 있습니다.
$ qmake -project
- 컴파일 환경을 만들어는 makefile
$ qmake -makefile
- 컴파일하기 위한 환경 설명 qmake, make 설정 등 알려주고 있으나 QtCreator를 사용할 경우 기본적으로 .pro 파일과 gcc 등 설정이 맞추어 자동 생성되기 때문에 실행파일을 만들기 위해서 위의 내용을 알 필요는 없습니다.
그러나 이런 흐름으로 되는구나 확인할 수 있는 내용이라 생각됩니다.
2) UI 관련 설명
- UI 기능 부분은 다른 도서 내용에도 많이 있기 때문에 특별하다는 부분은 없습니다. 단지 Pencil이라는 오픈소스로 화면 구성을 설명해주고 있습니다.
3) 구현 설명
- QGraphicsScene, QGraphicsView 객체를 생성해서 이미지 처리를 하고 있습니다.
- ImageViewer 기능으로 Zoom in, Zoom out, Saving a copy, Navigating in the folder 등 구현 내용을 설명해주고 있습니다.
- UI 상에서 유용하게 사용할 수 있는 Hotkey or Shortkey에 대한 방법도 알려주고 있습니다.
3. 마 무 리
- 책 앞부분의 소개처럼 이 책은 Qt UI 기능에 대해서 소개하는 책이 아니라, OpenCV와 어떻게 사용할 수 있는지를 알려주는 책이기 때문에 Qt를 처음 접하는 분이라면 입문자 도서를 한번 보고 참고하시면 좋을 것 같습니다.
- 이번 챕터에서는 간단하게 UI와 빌드하는 방법, 이미지 복사 저장하는 방법을 이야기하고 있고, 다음 챕터에서부터 이미지 수정하기 위한 OpenCV 함수들에 관한 내용이 있을 것입니다.
감사합니다.
<참고 사이트>
1. Qt-5-and-OpenCV-4-Computer-Vision-Projects 책 소개
https://www.packtpub.com/product/qt-5-and-opencv-4-computer-vision-projects/9781789532586
2. Qt-5-and-OpenCV-4-Computer-Vision-Projects – github source
https://github.com/packtpublishing/qt-5-and-opencv-4-computer-vision-projects