クラスを使用して関数を作成しています。関数は、提供された画像から選択された色を見つける必要があります。そこで、私たちが話しているRGB値であるため、関数がVec3b値をとるように作成しました。
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の個々の値にcolor [0]、color [1]、color[2]としてアクセスできます。
そして、私は上記の関数でそのように定義できることを知っていますが、vec3bが3つの値を取ることができるべきではありませんか?私のコードでやったように?