旅行好きなソフトエンジニアの備忘録

プログラミングや技術関連のメモを始めました

【OpenCV】 画像にエッジ検出フィルタを適用する(Cannyフィルタ)

OpenCVの復習が必要になったのでメモしておきます。アルゴリズム自体の説明はここ(しぼりたてブログ Canny Edge Detection -アルゴリズム-)が詳しかったです。

// グレースケールで画像を読み込む
UMat source;
imread("lenna.jpg", CV_LOAD_IMAGE_GRAYSCALE).copyTo(source);
if (source.empty())
{
    throw runtime_error("Failed to open image");
}

// Cannyフィルタによるエッジ検出を行う
// lowThresholdより小さい強度の画素はエッジと見なされない
// highThresholdより大きい強度の画素はエッジと見なす
// lowThreshold≦highThresholdの強度の画素はエッジに結合していればエッジと見なす
double lowThreshold = 40.0;
double highThreshold = 200.0;
UMat destination;
Canny(source, destination, lowThreshold, highThreshold);

imshow("source", source);
imshow("destination", destination);

f:id:ni4muraano:20170115145041j:plain f:id:ni4muraano:20170116110511j:plain

さらに進化した画像処理ライブラリの定番 OpenCV 3基本プログラミング

さらに進化した画像処理ライブラリの定番 OpenCV 3基本プログラミング


関連記事
【OpenCV】 画像にエッジ検出フィルタを適用する(Laplacianフィルタ) - 旅行好きなソフトエンジニアの備忘録
【OpenCV】 画像にエッジ検出フィルタを適用する(Sobelフィルタ) - 旅行好きなソフトエンジニアの備忘録