我使用类来创建一个函数。该函数必须在提供的图像中找到选定的颜色。所以我这样做是为了让函数采用 Vec3b 值,因为它是我们正在谈论的 RGB 值。
class colorcompare
{
private:
int threshold;
Vec3b color;
void setcolor(Vec3b);
Mat process(Mat&);
void setthresh(const int);
int getdist(Vec3b);
};
void colorcompare::setcolor(Vec3b colr)
{
color = colr;
}
int _tmain(int argc, _TCHAR* argv[])
{
colorcompare cc1;
Mat image;
image = imread("c:\\car2.jpg", -1);
cc1.setcolor(19,69,139); //This is where im getting error
cc1.setthresh(100);
namedWindow("meh");
imshow("meh", cc1.process(image));
waitKey(0);
return 0;
}
现在我得到的错误是:'colorcompare::setcolor' : function does not take 3 arguments
我知道 vec3b 是 3 个值的向量,所以换句话说,我可以访问 vec3b 的各个值作为颜色 [0]、颜色 [1] 和颜色 [2]。
而且我知道我可以在上面的函数中这样定义它,但是 vec3b 不应该能够取 3 个值吗?就像我在代码中所做的那样?