2017-04-07 108 views
0

我有數據集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創建它們的直方圖和比較。我認爲正確嗎?

回答

0

我認爲更直觀的說一維數據的直方圖,二維數據的直方圖。

您需要2D數據的直方圖。

  • 1D直方圖計算標量值碰撞箱間隔的數量。
  • 二維直方圖按區域劃分平面,並計算每個區域命中的二維點數 。

這裏計算的H,S 2D直方圖的圖像:Calculate HSV histogram of a coloured image is it different from H-S histogram?

您有接近相同的問題,而是把你的X來代替H,和S.

代替ÿ