我有數據集1和2.那些有2D數據。 例如,使用2D數據創建3D直方圖(OpenCV?)
數據1: (X1,Y1),(X2,Y2),(X3,Y3)...(XN,YN)
數據2:(X1' ,Y1' ) ,(x2',y2'),...(xm',ym')
如果可能的話,我想用直方圖和Earth Mover的距離(EMD)進行比較。
因爲我有二維數據,數據應該放在二維地圖上,二維地圖上的直方圖高度有數據的頻率,因此它應該是三維直方圖我猜。即使我成功創建繪製直方圖的示例並使用1D數據比較它們,我仍未嘗試將其更改爲2D數據。怎麼運行的?
例如,
calcHist(&greyImg, 1, channel_numbers, Mat(), histogram1, 1, &number_bins, &channel_ranges);
此代碼THA圖像的灰度強度(1D數據)直方圖。但我無法將其更改爲2D數據。
我的想法是這樣的:我 創建簡歷::墊Data1Mat,Data2Mat; (墊大小設置爲x和y的最大值) 然後,將Data1的x值推入Mat1的第一個通道,將y值推送到第二個通道。 (同向數據2和Data2Mat) 例如,對於(X1,Y1),設置
Data1Mat.at(x1,y1)[0] = x1, Data1Mat.at(x1, y1)[1] = y1;
像this.Then創建它們的直方圖和比較。我認爲正確嗎?