VisionSW 프로젝트는 OpenCV의 cv::Blur 필터를 직접 구현하여 이미지의 Blur 처리를 수행하고, 그 성능을 비교하는 프로젝트입니다. 이 프로젝트는 성능 테스트와 이미지 처리 비교를 목표로 하고 있습니다.
![]() |
output Images |
ksize: 51 x 51 | |
---|---|
![]() |
![]() |
before | after |
OpenCV 설치 및 프로젝트 빌드를 위한 단계입니다.
-
OpenCV 설치 스크립트 실행:
./setup_opencv.sh
이 스크립트는 OpenCV를 클론하고, 빌드하여 사용할 수 있도록 설정합니다.
-
빌드 디렉토리 생성 및 프로젝트 빌드:
mkdir build cd build cmake .. make
-
실행:
cd ../bin ./test_code <config.txt>
config.txt
파일에는 처리할 이미지나 설정이 포함되어 있어야 합니다.
image_paths=<image_file_path>
image_paths=<image_file_path>
kernel_size=<kernel_size (홀수)>
output_path=<output_path>
image_paths="../images/image1.jpg"
image_paths="../images/image2.jpg"
image_paths="../images/image3.jpg"
image_paths="../images/image4.jpg"
kernel_size=21
output_path="../output/"
이미지 처리 중 발생하는 로그 출력 예시입니다. 이 로그에는 처리된 이미지와 성능, 메모리 사용량 등의 정보가 포함됩니다.
[Sun Dec 15 21:21:13 2024] [INFO] [opencv] Image saved to ../output/opencvimage1.jpg
[Sun Dec 15 21:21:13 2024] [INFO] [opencv] Memory Usage :299376KB
[Sun Dec 15 21:21:13 2024] [INFO] [opencv] duration time :1.313305
[Sun Dec 15 21:21:57 2024] [INFO] [custom] Image saved to ../output/customimage1.jpg
[Sun Dec 15 21:21:57 2024] [INFO] [custom] error : Memory measurement error
[Sun Dec 15 21:21:57 2024] [INFO] [custom] duration time :42.772318
[Sun Dec 15 21:21:58 2024] [INFO] ../images/image1.jpg are identical
[Sun Dec 15 21:22:00 2024] [INFO] [opencv] Image saved to ../output/opencvimage2.jpg
[Sun Dec 15 21:22:00 2024] [INFO] [opencv] Memory Usage :348032KB
[Sun Dec 15 21:22:00 2024] [INFO] [opencv] duration time :1.454158
[Sun Dec 15 21:22:54 2024] [INFO] [custom] Image saved to ../output/customimage2.jpg
[Sun Dec 15 21:22:54 2024] [INFO] [custom] error : Memory measurement error
[Sun Dec 15 21:22:54 2024] [INFO] [custom] duration time :52.886826
[Sun Dec 15 21:22:55 2024] [INFO] ../images/image2.jpg are identical
[Sun Dec 15 21:22:56 2024] [INFO] [opencv] Image saved to ../output/opencvimage3.jpg
[Sun Dec 15 21:22:56 2024] [INFO] [opencv] Memory Usage :80816KB
[Sun Dec 15 21:22:56 2024] [INFO] [opencv] duration time :1.098710
[Sun Dec 15 21:23:37 2024] [INFO] [custom] Image saved to ../output/customimage3.jpg
[Sun Dec 15 21:23:37 2024] [INFO] [custom] error : Memory measurement error
[Sun Dec 15 21:23:37 2024] [INFO] [custom] duration time :39.883245
[Sun Dec 15 21:23:37 2024] [INFO] ../images/image3.jpg are identical
[Sun Dec 15 21:23:38 2024] [WARNING] It's not a black-and-white image ../images/image4.jpg
[Sun Dec 15 21:23:38 2024] [WARNING] It's not a black-and-white image ../images/image4.jpg
INFO
: 정상적인 처리 결과입니다. 이미지 저장 경로, 메모리 사용량, 처리 시간 등의 유용한 정보를 기록합니다.WARNING
: 처리 중 경고 메시지가 나타납니다. 예를 들어, 처리하려는 이미지가 흑백 이미지가 아닐 경우 경고가 발생할 수 있습니다.ERROR
: 처리 중 문제가 발생한 경우입니다. 예를 들어, 이미지 블러 처리에 실패했거나 이미지를 저장할 수 없는 경우가 있습니다. 이때는 해당 실패에 대한 원인을 구체적으로 기록하는 것이 중요합니다.- 이미지 블러 처리 실패: 이미지 블러 처리 함수가 실패하면
"Failed to apply blur on image"
와 같은 메시지를 기록할 수 있습니다. - 이미지 저장 실패: 이미지를 지정된 경로에 저장할 수 없는 경우
"Failed to save image to <경로>"
와 같이 오류를 기록합니다.
- 이미지 블러 처리 실패: 이미지 블러 처리 함수가 실패하면
Metric | OpenCV (Time) | OpenCV (Memory) | Custom (Time) | Custom (Memory) |
---|---|---|---|---|
Image 1 | 1.31s | 299376KB | 42.77s | error |
Image 2 | 1.45s | 238352KB | 52.88s | error |
Image 3 | 1.09s | 75184KB | 39.88s | error |
- OpenCV: 이미지를 처리하는 속도가 매우 빠르고, 메모리 사용량도 안정적입니다.
- CustomCV: 속도가 매우 느리고, 메모리의 사용량이 오버플로우로 인해 정상적인 측정이 이루어지지않았습니다. 이 문제는 메모리 할당 및 관리 부분에서 최적화가 필요할 수 있음을 나타냅니다.
이미지 1
,이미지 2
,이미지 3
은 OpenCV와 사용자 정의 구현을 통해 처리된 결과가 동일하다는 로그로 확인되었습니다.
image4.jpg
는 흑백 이미지가 아니었으므 WARNING을 발생시켰습니다.