1. opencv 다운로드

- release 배포판

https://github.com/opencv/opencv/releases/tag/3.4.9

 

Release OpenCV 3.4.9 · opencv/opencv

OpenCV 3.4.9 has been released.

github.com

 

- opencv contrib release 배포판

https://github.com/opencv/opencv_contrib/releases

 

Releases · opencv/opencv_contrib

Repository for OpenCV's extra modules. Contribute to opencv/opencv_contrib development by creating an account on GitHub.

github.com

 

 

 

- 압축 해제 시 위치를 바로 선택하는게 좋음

 

2. Cmake 설치

https://cmake.org/download/

 

Download CMake

You can either download binaries or source code archives for the latest stable or previous release or access the current development (aka nightly) distribution through Git. This software may not be exported in violation of any U.S. export laws or regulatio

cmake.org

 

 

 

- 설치 시 PATH 자동 생성 설정

 

 

3. Cmake 설정

- opencv의 sources와 build의 경로를 가각 설정

 

 

- Generate 를 MinGW로 변경 

 

-설치가 진행되며 5~7분 정도 걸린다.

 

 

- 추가하면 좋은 것들

 

 

4. opencv build

- cmd 에서 opencv의 build 폴더로 이동 후 mingw32-make 명령 실행 빌드 하는데 시간이 소요됩니다

cd C:/opencv/build

mingw32-make

 

mingw32-make install

 

 

참고자료

https://mickael-k.tistory.com/39

1. 성능과 속도

영상처리 프로그램, 특히 CCTV와 같은 실시간 영상처리 시스템에서는 높은 성능과 빠른 처리 속도가 필수적입니다. Python은 배우기 쉽고 코드 작성이 간편하여 많은 개발자들이 선호하지만, 인터프리터 언어로서 성능 면에서 제약이 있습니다. C++은 컴파일러 언어로서 하드웨어 자원을 효율적으로 활용할 수 있어, 영상 데이터 처리와 같은 고성능 작업에서 뛰어난 성능을 발휘합니다.

  • Python의 성능 제약: Python은 인터프리터 언어로 실행 시마다 코드가 해석되어 실행되기 때문에, 반복적인 연산이나 대용량 데이터 처리가 필요한 영상처리 작업에서는 속도가 느려질 수 있습니다.
  • C++의 성능 장점: C++은 컴파일 언어로, 코드가 미리 컴파일되어 기계어로 변환되므로 실행 속도가 매우 빠릅니다. 따라서 실시간 영상처리와 같은 고속 처리가 요구되는 작업에 적합합니다.

2. 메모리 관리

영상처리 작업은 대량의 영상 데이터를 다루기 때문에 메모리 관리가 중요합니다. Python은 자동 메모리 관리(Garbage Collection)를 제공하지만, 이는 때때로 예기치 않은 메모리 사용량 증가나 성능 저하를 야기할 수 있습니다. C++은 개발자가 직접 메모리를 관리할 수 있어, 더 효율적이고 최적화된 메모리 사용이 가능합니다.

  • Python의 메모리 관리: Python의 자동 메모리 관리는 사용이 편리하지만, 복잡한 영상처리 알고리즘에서는 메모리 누수가 발생하거나 성능 저하가 일어날 수 있습니다.
  • C++의 메모리 관리: C++은 포인터를 사용하여 직접 메모리를 할당하고 해제할 수 있어, 메모리 사용을 최적화할 수 있습니다. 이는 대규모 영상 데이터를 다루는 CCTV 시스템에서 중요한 이점입니다.

3. 하드웨어 접근성

영상처리 작업에서는 GPU와 같은 고성능 하드웨어 자원을 활용하는 것이 중요합니다. C++은 하드웨어와의 밀접한 연동이 가능하며, CUDA와 같은 GPU 프로그래밍 라이브러리를 직접 사용할 수 있습니다. 반면, Python은 이러한 하드웨어 자원에 대한 접근성이 제한적이며, 주로 C++로 작성된 라이브러리를 바인딩하여 사용합니다.

  • Python의 제한된 하드웨어 접근성: Python에서는 GPU를 활용하기 위해 주로 C++로 작성된 라이브러리(CUDA, OpenCV 등)를 사용합니다. 이는 성능 저하와 호환성 문제를 야기할 수 있습니다.
  • C++의 하드웨어 접근성: C++은 CUDA와 같은 GPU 프로그래밍 도구를 직접 사용하여 고성능 병렬 처리를 구현할 수 있습니다. 이는 실시간 영상처리와 같은 고속 연산이 필요한 작업에서 큰 장점입니다.

4. 라이브러리와 생태계

Python은 풍부한 라이브러리 생태계를 자랑하지만, 많은 경우 C++로 작성된 라이브러리를 바인딩하여 사용합니다. 이는 Python의 편리함을 유지하면서도 C++의 성능을 활용할 수 있는 방법이지만, 직접 C++를 사용하는 것이 더 나은 성능과 유연성을 제공할 수 있습니다.

  • Python 라이브러리의 한계: Python의 영상처리 라이브러리(OpenCV, NumPy 등)는 대부분 C++로 작성된 코드를 바인딩한 것입니다. 이는 성능 면에서 이점이 있지만, 고급 사용자가 세밀한 최적화를 할 때는 한계가 있을 수 있습니다.
  • C++ 라이브러리의 강점: C++은 OpenCV, Boost 등 고성능 라이브러리를 제공하며, 이는 영상처리 작업에서 탁월한 성능을 발휘합니다. C++로 직접 개발함으로써 더 높은 유연성과 성능 최적화를 달성할 수 있습니다.

5. 결론

영상처리 프로그램, 특히 실시간 CCTV 시스템과 같은 고성능 요구사항이 있는 경우, Python만으로는 한계가 있을 수 있습니다. 성능, 메모리 관리, 하드웨어 접근성, 라이브러리 활용 측면에서 C++을 함께 사용하는 것이 더 나은 결과를 제공합니다. Python의 편리함과 C++의 성능을 적절히 결합하여 최적의 영상처리 솔루션을 구현하는 것이 바람직합니다.

'C++ > Basic' 카테고리의 다른 글

[C++] windows vscode opencv 설치  (0) 2024.06.06
[C++] VS code C++ 환경 세팅  (0) 2024.06.06

VS code 환경 세팅

1. C++ 컴파일러 설치

2. VScode Compiler configure

3. C++ Run test

 

 

1. C++ 컴파일러 MinGW 설치

 

설치 링크 : https://www.mingw-w64.org/downloads/#llvm-mingw

 

Downloads - MinGW-w64

Downloads The heart of the Mingw-w64 project is headers and support libraries to run the output of GCC on Windows. Since Mingw-w64 is neither the home of GCC nor of binutils, several sets of installation packages which combine them are available. In additi

www.mingw-w64.org

 

 

- 사이트 이동 후 바로 'SourceForge' 클릭

 

 

- SourceForge 이동 후 아래로 스크롤해서 다음 이미지로 화면으로 이동 후 MinGW-W64 GCC - (version) 에서 첫번째 파일 다운로드

 

 

2. 컴파일러 파일 압축해제

압축 해제 프로그램 링크 : https://www.7-zip.org/

 

7-Zip

7-Zip 7-Zip is a file archiver with a high compression ratio. Download 7-Zip 24.06 (2024-05-26) for Windows x64 (64-bit): Link Type Windows Size Download .exe 64-bit x64 1.6 MB Download 7-Zip 24.06 for another Windows platforms (32-bit x86 or ARM64): Link

www.7-zip.org

 

- 프로그램 설치 후 압축해제

 

 

3. 환경 변수 설정

 

- 환경 변수 -> path 에서 파일 경로 추가

** mingw64\bin 으로 추가하기

 

 

4. 설치 확인

- 프롬프트에서 다음의 명령어로 확인

gcc --version
g++ --version
gdb --version

 

 

5. VS code C/C++ extensions 설치

 

- 이후 Configure Default Build Task 선택

 

 

- C++은 g++ , C언어는 gcc 설정

 

 

6. 컴파일러 실행

- test.cpp 생성 후 예시 코드 작성

#include <iostream>

int main() {
    std::cout << "Hello World!" << std::endl;
    return 0;
}

 

- Ctrl + Shift + B 눌러 빌드 하여 .exe 파일 생성

 

성공 시 아래의 터미널 출력이 나온다

 

 

- Ctrl + Shift + P 누른 후 C/C++: Run C/C++ file 선택

 

 

- Run 아이콘이 생기며

 

정상적으로 Hello World! 가 표시된것을 확인할 수 있다.

 

 

 

더보기

C++ 컴파일러 설치 -> VScode Compiler configure -> C++ Run test 완료!

 

+++ 단축키 추가 +++

VScode 좌상단 삼단바에서 ' 파일 -> 기본 설정 -> 바로 가기 키' 에서 우상단에서 아래 아이콘을 클릭 하면 keybindings.json 파일이 열림

keybindings.json에 아래 내용 입력

[
    // 컴파일 단축키
    {
        "key": "ctrl+alt+c",
        "command": "workbench.action.tasks.build"
    },
    // 실행 단축키
    {
        "key": "ctrl+alt+r",
        "command": "workbench.action.tasks.test"
    }
]

 

 

참고자료

1.

https://velog.io/@mimimya/Visual-Studio-Code%EC%97%90-CC-%EC%84%B8%ED%8C%85%ED%95%98%EA%B8%B0

 

Visual Studio Code에 C/C++ 세팅하기

서론 지난 글에서 개발환경 구축을 위해 VSCode를 설치하고 간단하게 살펴 보았다. 이번 글에서는 Visual Studio Code에서 C언어와 C++언어를 세팅하는 과정을 알아본다.

velog.io

2. 

https://3dlecture.tistory.com/9

 

【C/C++환경설정】Visual Studio Code에서 C/C++ 코딩 환경 구축하기[Configure Visual Studio Code for C/C++]

Visual Studio Code 다운로드 및 설치 단계 1 : Google에서 "Visual Studio Code"을 검색하여, 공식사이트에서 정식판을 다운로드한다. 마이크로소프트에서 개발한 텍스트 에디터로, 2015년 4월 29일에 소개되고

3dlecture.tistory.com

 

+ Recent posts