기본 콘텐츠로 건너뛰기

7월, 2025의 게시물 표시

MinGW 기반 C++ OpenCV 영상 처리 튜토리얼

MinGW 기반 C++ OpenCV 영상 처리 튜토리얼 본 튜토리얼에서는 **Windows + MinGW 환경의 C++**에서 OpenCV 라이브러리를 설치하고 간단한 영상 처리 예제를 실행하는 방법을 다룹니다. 기본 이미지 입출력부터 그레이스케일 변환, 가우시안 블러, 캐니 엣지 검출 등의 순서로 설명하며, 각 단계마다 관련 코드 예제와 해설을 제공합니다. (필요에 따라 코드와 설명을 표 형식으로 정리합니다.) OpenCV 설치 및 MinGW 연동 MinGW를 사용하는 C++ 환경에서 OpenCV를 사용하려면 먼저 OpenCV 라이브러리를 설치하고 MinGW 컴파일러와 연동해야 합니다. 일반적으로 OpenCV는 Visual Studio 용 바이너리를 제공하지만, MinGW에서는 직접 빌드하거나 미리 컴파일된 라이브러리를 구하여 설정해야 합니다. 아래는 MinGW-w64 환경에서 OpenCV를 설치 및 연동하는 방법의 개략적인 단계입니다: MinGW-w64 설치: 최신 버전의 MinGW-w64 64비트 컴파일러를 설치합니다. 반드시 posix 스레드 모델의 MinGW-w64를 선택하세요. 32비트 MinGW나 win32 스레드 옵션은 OpenCV 빌드시 스레드 관련 오류를 일으킬 수 있습니다. 설치 후 mingw64/bin 경로를 시스템 PATH에 추가하고 g++ --version 으로 정상 설치 여부를 확인합니다. OpenCV 소스 다운로드: OpenCV 공식 저장소나 홈페이지에서 최신 OpenCV 소스 코드를 다운로드합니다. (예: GitHub의 opencv/opencv 및 opencv_contrib 저장소의 릴리스 ZIP 파일 다운로드.) 다운로드한 압축 파일을 풀어서, 예를 들어 D:\OpenCV\opencv-4.x.x\ 경로에 저장합니다. CMake로 OpenCV 빌드: CMake 툴을 설치한 후, CMake GUI나 명령줄을 이용하여 OpenCV 소스를 MinGW용으로 빌드합니다. CMake 설정 단계에서 Genera...

Windows에서 Column-by-Column 비디오 믹서 앱 개발환경 구축 가이드

Windows에서 Column-by-Column 비디오 믹서 앱 개발환경 구축 가이드 Windows 10 이상의 환경에서 Python과 C++를 함께 사용하여 컬럼 단위 비디오 믹서 애플리케이션을 개발하기 위해 필요한 환경 설정 과정을 단계별로 설명합니다. Python 3.10을 기반으로 GUI는 Tkinter로 구성하고, 성능을 위해 C++ 백엔드를 작성하여 Pybind11로 Python과 연동하며, 영상 처리에는 OpenCV 라이브러리를 활용합니다. 아래에서는 Python 패키지 설치부터 MinGW 컴파일러 설정, Pybind11/CMake 구성, OpenCV 설치, CMake 빌드 예시, .pyd 모듈 사용법, 그리고 예제 프로젝트 구조까지 차례로 자세히 다룹니다. 1. Python 패키지 설치 (pip로 설치) 먼저 Python 측 패키지를 설정합니다. pip 를 사용하여 필요한 패키지를 설치합니다: Pybind11 : C++ 코드를 Python에 바인딩하기 위한 헤더 라이브러리입니다. PyPI를 통해 설치할 수 있으며, 설치하면 Python 환경에 Pybind11 헤더와 CMake 설정 파일 등이 포함됩니다. 명령: pip install pybind11 . (Pybind11은 헤더-only 라이브러리로, C++ 컴파일 시에만 사용되고 실행 시간에는 추가 의존성이 없습니다.) OpenCV-Python (선택사항): Python 측에서 OpenCV를 사용하거나 빠른 테스트를 위해 설치할 수 있습니다. pip install opencv-python 또는 GUI 기능이 필요 없으면 pip install opencv-python-headless 로 설치합니다. 이 패키지는 OpenCV의 Python 바인딩을 제공하므로, C++에서 직접 OpenCV를 사용할 계획이라면 필수는 아니지만, 설치해 두면 Python으로 영상 파일을 불러오거나 결과를 확인하는 데 도움이 될 수 있습니다. NumPy (선택사항): Pybind11로 C++...