[c++] 영상처리 및 컴퓨터 비전 라이브러리 활용하기
영상처리 및 컴퓨터 비전은 많은 분야에서 활용되고 있습니다. C++을 사용하여 영상처리 및 컴퓨터 비전을 구현하는 방법을 알아보겠습니다.
OpenCV 라이브러리 소개
OpenCV는 컴퓨터 비전 프로그래밍을 위한 오픈 소스 라이브러리로, C++, Java, Python 등 다양한 언어에서 사용할 수 있습니다. 영상처리, 객체 탐지, 얼굴 인식 등 다양한 기능을 제공합니다.
OpenCV 설치
OpenCV를 사용하기 위해서는 먼저 라이브러리를 설치해야 합니다. 다음은 OpenCV를 설치하는 간단한 방법입니다.
$ sudo apt-get update
$ sudo apt-get install libopencv-dev
영상 불러오기 및 표시하기
#include <opencv2/opencv.hpp>
int main() {
// 영상 불러오기
cv::Mat image = cv::imread("image.jpg");
// 영상 표시하기
cv::imshow("Image", image);
cv::waitKey(0);
return 0;
}
위 코드는 OpenCV를 사용하여 영상을 불러오고 표시하는 간단한 예제입니다.
이미지 필터링
#include <opencv2/opencv.hpp>
int main() {
cv::Mat image = cv::imread("image.jpg");
// 이미지를 회색조로 변환
cv::Mat grayImage;
cv::cvtColor(image, grayImage, cv::COLOR_BGR2GRAY);
// 가우시안 블러 적용
cv::Mat blurredImage;
cv::GaussianBlur(grayImage, blurredImage, cv::Size(5, 5), 0);
// 영상 표시하기
cv::imshow("Blurred Image", blurredImage);
cv::waitKey(0);
return 0;
}
위 코드는 영상의 색상을 회색조로 변환하고 가우시안 블러를 적용하여 이미지를 흐리게 만드는 예제입니다.
객체 탐지
#include <opencv2/opencv.hpp>
int main() {
cv::Mat image = cv::imread("image.jpg");
// Haar Cascade 분류기 로드
cv::CascadeClassifier faceCascade;
faceCascade.load("haarcascade_frontalface_default.xml");
// 얼굴 탐지
std::vector<cv::Rect> faces;
faceCascade.detectMultiScale(image, faces, 1.1, 2, 0, cv::Size(30, 30));
// 찾은 얼굴 표시
for (const auto& face : faces) {
cv::rectangle(image, face, cv::Scalar(255, 0, 0), 2);
}
// 영상 표시
cv::imshow("Detected Faces", image);
cv::waitKey(0);
return 0;
}
위 코드는 OpenCV의 Haar Cascade 분류기를 사용하여 이미지에서 얼굴을 탐지하고 표시하는 예제입니다.
마치며
이렇게 간단히 OpenCV를 활용하여 C++로 영상처리 및 컴퓨터 비전 기술을 구현할 수 있습니다. 더 많은 기능을 구현하고 싶다면 OpenCV의 다양한 기능과 API에 대해 더 알아보시기 바랍니다.