Rectangle r=new Rectangle ();
Mat roi;
r.X = 1710; r.Y = 1000; r.Width = 270; r.Height = 270;
Mat qq1 = CvInvoke.Imread("D:\\01.bmp",0);
roi = new Mat(qq, r);
// CvInvoke.Imwrite("D:\\01_t.bmp", roi);
Mat dst= CvInvoke.Imread("D:\\01_t.bmp",0);
int[] dim = new int[] { 0 };
int[] histSize = { 256 };
float[] range = new float[] { 0,255};
VectorOfMat test = new VectorOfMat();
test.Push(roi);
VectorOfMat test1 = new VectorOfMat();
test1.Push(dst);
Mat hist_roi = new Mat();
Mat hist_dst = new Mat();
CvInvoke.CalcHist(test, dim, new Mat(), hist_roi, histSize, range, accumulate);
CvInvoke.CalcHist(test1, dim, new Mat(), hist_dst, histSize, range, accumulate);
double soc = CvInvoke.CompareHist(hist_roi, hist_dst, Emgu.CV.CvEnum.HistogramCompMethod.Bhattacharyya);