2016-07-30 141 views

回答

0

聽起來就像是在尋找圖像的直方圖。這是圖像處理中的基本操作。

直方圖收集整理成一組預定義倉數據的罪名。

直方圖計算使用OpenCV的文件是this link

0

這聽起來像你要找的是您的圖像的柵格化版本的空間時刻。

首先,你需要你的門檻圖像,使其二進制: http://docs.opencv.org/2.4/modules/imgproc/doc/miscellaneous_transformations.html?highlight=threshold#threshold

然後可以計算圖像矩: http://docs.opencv.org/2.4/modules/imgproc/doc/structural_analysis_and_shape_descriptors.html?highlight=moments#moments

如果你想你可以在空間瞬間的物理模擬假設每個白色像素都是一個單位點質量,那麼第二個時刻就是圖像的旋轉慣性。如果白色像素(點質量)緊密聚集,那麼第二個時刻會變低(圖像將輕鬆旋轉)。

0

我想分享我用過的另一種方法。

Mat img = imread(argv[1], CV_LOAD_IMAGE_COLOR); 
cvtColor(img, img, CV_RGB2GRAY); 
threshold(img, img, 35, 255, THRESH_BINARY); 

Mat distance; 
distanceTransform(img, distance, CV_DIST_L2, 3); 
distance = min(distance, 1); 
Scalar distribution = mean(dist); 

cout << "The distribution is: " << distribution << std::endl; 

棘手的部分是distanceTransformmin功能的組合。對於分佈良好的圖像,min函數的效果會更小,平均值會更大。