使用opencv2后找不到min函数

时间:2014-03-09 08:17:16

标签: c++ opencv namespaces

这是我的代码:

#include <iostream>
#include <algorithm>
#include <opencv2/opencv.hpp>

using namespace std;
using namespace cv;

void increase_brigntness(Mat& im,int g)
{
    Mat lut(1,256,CV_8UC3);

    for(int i=0;i<256;++i)
        for(int c=0;c<3;++c)
            lut.at<Vec3b>(i)[c]=min(i+g,255);

    LUT(im,lut,im);
}

但是,编译器在std中找不到min(int,int)函数,因为我使用了命名空间cv。我怎么还能使用min函数?

1 个答案:

答案 0 :(得分:4)

快速解决:致电std::min

lut.at<Vec3b>(i)[c] = std::min(i+g,255);

长期修复:不要说using namespace std;using namespace cv;It is a bad idea。发明命名空间是为了避免这种问题。你只是否定拥有它们的所有好处。