2012-01-24 1 views
2

MatNDのヒストグラムがあります。最大値と最小値を取得したいと思います。 OpenCVのCバージョンには、この非常に仕事をする機能cvGetMinMaxHistValue()がありますが、それはMatNDを受け入れません。どのような選択肢がありますか?ヒストグラムをループOpenCV CvGetMinMaxHistValue for C++ MatND

+1

によって)cvGetMinMaxHistValue(を代用することであろう(https://code.ros.org/trac/opencv/ticket/703)? OpenCVのどのバージョンがありますか? OpenCV 2.3の 'cv :: Mat'とNDバージョンは既に結合されています([Mat](http://opencv.itseez.com/modules/core/doc/basic_structures.html#Mat)) –

+0

彼は働いていますCバージョンでは、Matsと仕事をしたくないかもしれません。とにかく、ヒストグラムを手動でループして最小値と最大値を見つけることができると思います。それは大丈夫でしょうか、もっと効率的なものをお探しですか? – fdh

+0

私はFarhadの提案に従うと思います。ありがとうございました。 MatNDで保持されているヒストグラムからヒストグラム値を取得する方法を教えてください。 – User09

答えて

3

は非常に簡単です:

cv::MatND hist; 

[... get histogram ...] 

for (int i=0; i<256; i++) 
{ 
    float hist_value = hist.at<float>(i); 
    // do stuff 
} 

はそれが役に立てば幸い:)

+2

あなたの希望が実現しました – User09

3

次のようにC++版が使用することができます。

cv::MatND hist = getHistogram(image); 
double min=0,max=0; 
cv::minMaxLoc(hist, &min, &max, 0, 0); 

・ホープ、このことができます!

0

あなたの答えは、[これは関連する]でしSee thisminMaxLoc