【OpenCV】 画像の類似度を調べる
OpenCVの復習が必要になったのでメモしておきます。
// 画像を読み込む Mat source1; imread("lenna.jpg", CV_LOAD_IMAGE_GRAYSCALE).copyTo(source1); if (source1.empty()) { throw runtime_error("Failed to open image"); } Mat source2; imread("lenna.jpg", CV_LOAD_IMAGE_GRAYSCALE).copyTo(source2); if (source2.empty()) { throw runtime_error("Failed to open image"); } // 画像のヒストグラムを計算する int imageCount = 1; // 入力画像の枚数 int channelsToUse[] = { 0 }; // 0番目のチャネルを使う int dimention = 1; // ヒストグラムの次元数 int binCount = 256; // ヒストグラムのビンの数 int binCounts[] = { binCount }; float range[] = { 0, 256 }; // データの範囲は0~255 const float* histRange[] = { range }; Mat histogram1; calcHist(&source1, imageCount, channelsToUse, Mat(), histogram1, dimention, binCounts, histRange); Mat histogram2; calcHist(&source2, imageCount, channelsToUse, Mat(), histogram2, dimention, binCounts, histRange); // 類似度を調べる(同じ画像を読み込んだため1が出力される) double correlation = compareHist(histogram1, histogram2, CV_COMP_CORREL);
さらに進化した画像処理ライブラリの定番 OpenCV 3基本プログラミング
- 作者: 北山洋幸
- 出版社/メーカー: カットシステム
- 発売日: 2016/04
- メディア: 単行本
- この商品を含むブログ (1件) を見る