To powinno być oczywiste, pomyślałem. Ale nie mogę znaleźć łatwego sposobu znalezienia maksimum wśród wszystkich pikseli w macie OpenCV. Oczywiście mogę wykonać następujące czynności dla każdego typu piksela. Ale ogólna funkcja max będzie nadal przydatna.Jak obliczyć maksymalną wartość pikseli Mat w OpenCV
double cvMax(cv::Mat& mat)
{
float max=0;
float* pData=(float*)mat.data;
for(int i=0;i<mat.rows;i++)
{
for(int j=0;j<mat.cols;j++)
{
float value = pData[j+i*mat.cols];
if(value>max)
{
max=value;
}
}
}
return max;
}
Warto wspomnieć, że max_element zwraca iterator. – twerdster
Jedna uwaga: Spodziewam się, że iterator Mat będzie dość powolny, ponieważ przy każdym przyrostie musi sprawdzić, czy dotarłeś do końca wiersza (Macierz może być nieciągła i mogą być również bajty dopełnienia) – Antonio