opencv - Vec3b 不带三个参数吗?

标签 opencv

我正在使用类来创建函数。该函数必须在提供的图像中找到选定的颜色。所以我这样做是为了让函数采用 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 个值吗?就像我在代码中所做的那样?

最佳答案

经典错误:函数需要一个 cv::Vec3b 对象,而不是 3 个 int 变量

如果你想要单行解决方案,试试这个:

cc1.setcolor(cv::Vec3b(19,69,139));

关于opencv - Vec3b 不带三个参数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12815609/

相关文章:

c - 如何解决 OpenCV libjpeg 和 fltkjpeg 之间的库冲突?

c++ - GPU 上的 OpenCV FAST 检测器

c++ - 如何从非连续数据生成 OpenGL 纹理?

java - 如何在java opencv中找到最大的轮廓

python - OpenCV 用 Python 拉直图像

python - OpenCV:跟踪在 2D 平面中移动的 3D 对象

c++ - 将 Mat 转换为 <vector<vector>> C++

django - 无法在 django(使用 python-opencv)项目中找到人脸(人脸检测)

visual-c++ - 使用卷积方法处理35 x 35内核

python - 计算更多的元素,那么它应该是