2014-01-05 76 views
0

我的代碼中出現以下兩個錯誤。代碼中的OpenCV錯誤

「img.cv::Mat::cols」不能用作函數

「img.cv::Mat::rows」不能用作函數

和我不不知道如何解決它。有人可以幫我解決這個錯誤。

這裏是我的代碼

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; 
} 

回答

3

colsrows是的Mat類,而不是成員函數成員整數。刪除()

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

嘗試:

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

img.cv::Mat::cols和img.cv::Mat::rows似乎是性能,而不是那類的方法。