查找cv :: Mat的最大值
c++
computer-vision
opencv
6
0

我正在尝试找到cv::Mat的最大像素值。

问题: *maxValue始终返回0

这个SO线程中 ,我知道' max_element返回迭代器,而不是值。这就是为什么我使用*maxValue '

cv::Mat imageMatrix;

double  sigmaX = 0.0;
int ddepth = CV_16S; //  ddepth – The desired depth of the destination image


cv::GaussianBlur( [self cvMatFromUIImage:imageToProcess], imageMatrix, cv::Size(3,3), sigmaX);

cv::Laplacian(imageMatrix, imageMatrix, ddepth, 1);

std::max_element(imageMatrix.begin(),imageMatrix.end());

std::cout << "The maximum value is : " << *maxValue << std::endl;

注意:如果用min_element代替max_element ,用minValue代替maxValue ,则*minValue将始终返回0

参考资料:
Stack Overflow
收藏
评论
共 1 个回答
高赞 时间 活跃

您应该使用OpenCV内置函数minMaxLoc代替std函数。

Mat m;
//Initialize m
double minVal; 
double maxVal; 
Point minLoc; 
Point maxLoc;

minMaxLoc( m, &minVal, &maxVal, &minLoc, &maxLoc );

cout << "min val : " << minVal << endl;
cout << "max val: " << maxVal << endl;
收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号