c++ -可以使用一点解释Vec3b在OpenCV
C++ - Could use a little explanation of Vec3b in OpenCV
我在转换成另一种语言的代码中遇到了这种'Vec3b green(0,255,0), blue(255,0,0);'。我是c++ OpenCV的新手,想知道它在文档中的位置,我到处搜索,找不到它。我还搜索了整个OpenCV目录,发现这是最接近它的定义
' typepedef Vec3b RGB;'
在/home/w/documents/opencv-master/modules/imgproc/test/test_cvtyuv.cpp文件
我为RGB grepped,也找不到一个定义,虽然有很多输出,我可能错过了一些东西。我正在编写一个C包装器,因为这就是为什么我需要知道,到目前为止,我有这个来包装上面的'Vec3b green(0,255,0)':
Vec3b cv_create_Vec3b(const char* color, int val1, int val2, int val3) {
return new Vec3b color (val1, val2, val3);
}
但是得到这个错误:
opencv_generated.cpp:8:22: error: expected ‘;’ before ‘color’
return new Vec3b color (val1, val2, val3);
^
opencv_generated.cpp:8:45: error: ‘color’ cannot be used as a function
return new Vec3b color (val1, val2, val3);
首先,我可以使用帮助,找出如何输入"color"。它只需要一个变量,无论它运行时输入什么,它都是"绿色"或"蓝色"的(对c++来说是新的)。第二,如果有人能给我指出或告诉我关于它的信息,或者给我一个声明,这样我就有足够的信息来写我的包装,我会很感激的。
谢谢^
我在另一篇S.O.帖子中找到了如何做到这一点。请参阅评论
这里https://stackoverflow.com/questions/22311634/c-help-writing-function-parameters-for-c-wrappers-for-c
Vec3b* cv_create_Vec3b(int val1, int val2, int val3) {
return new Vec3b (val1, val2, val3);
}
Vec3b是一个类型(对我来说看起来像一个颜色值),"green"answers"blue"是变量名。你不能在字符串中存储变量名(很明显),因此你不能有一个函数来生成这些值。而且,你的函数在语法上是错误的。虽然我不明白你如何为一个c++项目写一个c包装器(如果它的一部分是用c++写的,你需要一个c++编译器,那么有什么意义呢?),我绝对建议你在尝试用它做任何事情之前先学习c++。语法的可能性太大了,不能在阅读代码时自己学习。
编辑:也许可以试试这样的东西?Vec3b Green() {
Vec3b result(0, 255, 0);
return result;
}
- 请解释"函数1(p1,p2,p3);"的输出
- 请解释这句话(cout<<1+int((a<b)^((b-a)&1) )<<endl
- 被解释为低级别const的const对象的地址
- 计算每个节点的树高,帮助我解释这个代码解决方案
- MSVC将仅移动结构参数解释为指针
- 内联程序集printf将整数解释为地址
- 有人能解释一下为什么下界是这样工作的吗C++的
- Visual Studio(或任何其他工具)能否将地址解释为调用堆栈(boost上下文)的开头
- 我是c ++的新手,你能解释一下在这种情况下的指针吗
- 有人能为我解释一下C++代码吗
- 你能解释一下什么运行时错误是如何解决它的吗?
- 请解释字谜的代码,我看不懂计数器数组,每个值已经是0
- 有人可以向我解释为什么控制台输出 0 吗?
- 有人可以解释一下这段代码如何能够反转字符串
- 在 C++ 中解释多维向量的语句时感到困惑
- 解释一下 for (char c : str) 的作用?
- 确切地说,如何解释 std::getline(stream, string) 函数在C++中填充的字符串
- 隐式重新解释引用时强制转换,没有警告/错误
- 我无法理解这一点,有人可以帮我解释一下吗?
- c++ -可以使用一点解释Vec3b在OpenCV