LBPを生成するために bytefish.de のコードを使用しています。2 つの LBP とそれに対応するヒストグラムを生成する場合、それらを比較する最良の方法は何ですか?
これまでの私のコードは次のとおりです。
#include "lbp.hpp"
#include "histogram.hpp"
#include <opencv2/opencv.hpp>
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
using namespace cv;
int main()
{
//template image
Mat temp = imread("Template.jpg",1);
//image to be compared to
Mat match = imread("Match.jpg",1);
Mat dst,dst2; // image after preprocessing
Mat lbp,lbp2; // lbp image
Mat hist,hist2;
//Convert to gray
cvtColor(temp, dst, 6);
cvtColor(match, dst2, 6);
//remove noise
GaussianBlur(dst, dst, Size(5,5), 5, 3, BORDER_CONSTANT);
GaussianBlur(dst2, dst2, Size(5,5), 5, 3, BORDER_CONSTANT);
//gets the lbp
lbp::ELBP(dst,lbp,1,8);
lbp::ELBP(dst2,lbp2,1,8);
// normalize(lbp2, lbp2, 0, 255, NORM_MINMAX, CV_8UC1);
//normalize(lbp, lbp, 0, 255, NORM_MINMAX, CV_8UC1);
//get histograms
lbp::histogram(lbp,hist,255);
lbp::histogram(lbp2,hist2,255);
//comparing the 2 LBP histograms
double compareHist = cv::norm(hist-hist2);
cout<<compareHist<<endl;
waitKey(0);
return 0;
}
基本的に、これらの 2 つの画像がどの程度似ているかを定量化できる数値が得られます。私の質問は、この結果を改善するにはどうすればよいですか? 2 つの LBP の類似性に基づいて、定量化可能な数値を得るより良い方法は何ですか?
ありがとう。