[c++] 엣지 감지 필터
엣지 감지 필터는 다양한 형태로 구현될 수 있으며, 컨볼루션 필터를 주로 사용합니다. 소벨 필터, 프리윗 필터, 라플라시안 필터 등이 일반적으로 사용되며, 각각의 필터는 다양한 방식으로 에지를 감지합니다.
이러한 필터는 주로 컴퓨터 비전, 영상 처리, 로봇 공학 등 다양한 분야에서 사용됩니다.
아래는 C++로 구현된 엣지 감지 필터의 간단한 예제 코드입니다.
#include <opencv2/opencv.hpp>
#include <iostream>
int main() {
cv::Mat image = cv::imread("image.jpg", cv::IMREAD_COLOR);
if (image.empty()) {
std::cout << "이미지를 읽을 수 없습니다." << std::endl;
return -1;
}
cv::Mat edges;
cv::cvtColor(image, edges, cv::COLOR_BGR2GRAY);
cv::GaussianBlur(edges, edges, cv::Size(3, 3), 1.5, 1.5);
cv::Canny(edges, edges, 50, 150);
cv::imshow("원본 이미지", image);
cv::imshow("에지 감지 결과", edges);
cv::waitKey(0);
return 0;
}
위 코드는 OpenCV 라이브러리를 사용하여 이미지를 읽고, 에지 감지를 수행한 후 결과를 표시하는 간단한 예제입니다. OpenCV는 영상 처리 및 컴퓨터 비전에 널리 사용되는 라이브러리로, 강력한 기능을 제공합니다.
이렇듯 엣지 감지 필터는 영상 처리에서 중요한 역할을 하며, C++ 및 다른 프로그래밍 언어를 사용하여 구현할 수 있습니다.