代码中的OpenCV错误

时间:2014-01-05 10:09:58

标签: c++ opencv

我的代码中出现以下两个错误。

' img.cv ::垫:: COLS'不能用作函数

' img.cv ::垫::行'不能用作函数

我不知道如何修复它。有人可以帮我解决这个错误。

这是我的代码

using namespace std;
using namespace cv;

void salt(Mat &img,int saltvalue)
{
    for(int k=0;k<saltvalue;k++)
    {
        int i = rand() % img.cols();
        int j = rand() % img.rows();

        img.at<Vec3b>(j,i)[0]=255;
        img.at<Vec3b>(j,i)[1]=255;
        img.at<Vec3b>(j,i)[2]=255;
    }
}

int main()
{
    Mat img;
    img = imread("C:\\castle.jpg",CV_LOAD_IMAGE_UNCHANGED);

    salt(img,3000);

    namedWindow("vOut",CV_WINDOW_AUTOSIZE);
    imshow("vOut",img);

    waitKey(0);
    destroyAllWindows();
    return 0;
}

2 个答案:

答案 0 :(得分:3)

colsrowsMat类的成员内容,而不是成员函数。删除()

    int i = rand() % img.cols;
    int j = rand() % img.rows;

答案 1 :(得分:2)

尝试:

int i = rand() % img.cols;
int j = rand() % img.rows;

img.cv::Mat::cols,img.cv::Mat::rows似乎是属性,而不是该类的方法。