見出し画像

OpenCV の Canny法で輪郭線を描く(C++)

Introduction

OpenCVは、画像処理やコンピュータビジョンのためのオープンソースのライブラリです。Canny 法は、画像処理において、エッジ検出のために広く使用されているアルゴリズムです。この記事では、OpenCVを使用してCanny 法で輪郭線を描画するためのC++コードを紹介します。

Canny 法とは

Canny 法は、画像処理でエッジ検出を行うためのアルゴリズムの一つで、John F. Canny によって提案されました。Canny 法では、画像の輝度勾配を利用してエッジを検出します。画像の輝度勾配は、画像の明るさがどの程度急激に変化しているかを示す値であり、この輝度勾配が大きい部分がエッジとして検出されます。Canny 法は、エッジを検出するための多段階の処理を行い、ノイズに強く、正確なエッジ検出が可能となっています。

Canny 法で輪郭線を描画するための C++ コード

以下は、OpenCVを使用してCanny 法で輪郭線を描画するためのC++コードの例です。このコードでは、cv::Canny()関数を使用して輪郭線を検出し、cv::imshow()関数を使用して画像を表示します。

#include <opencv2/opencv.hpp>

int main() {
    cv::Mat img = cv::imread("image.jpg", cv::IMREAD_GRAYSCALE);
    cv::Mat edges;
    cv::Canny(img, edges, 100, 200);
    cv::imshow("Edges", edges);
    cv::waitKey(0);
    return 0;
}

このコードでは、cv::imread()関数を使用して画像を読み込み、cv::Canny()関数で輪郭線を検出し、cv::imshow()関数で輪郭線が描画された画像を表示しています。cv::Canny()関数の第1引数には、入力画像、第2引数には、出力された輪郭線画像が格納されるMatオブジェクト、第3引数には、Canny 法で使用される最小の閾値、第4引数には、Canny 法で使用される最大の閾値が指定されています。

Conclusion

この記事では、OpenCVを使用してCanny 法で輪郭線を描画するためのC++コードについて紹介しました。Canny 法は、エッジ検出のために広く使用されており、OpenCVを使用することで簡単に実装することができます。C++を使用することで、高速な処理が可能となります。是非、実際にコードを書いて、画像処理に挑戦してみてください。

いいなと思ったら応援しよう!