我的代码中出现以下两个错误。
' 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;
}
答案 0 :(得分:3)
cols
和rows
是Mat
类的成员内容,而不是成员函数。删除()
:
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似乎是属性,而不是该类的方法。