我想获取 buf 中的第二个像素并使用 printf 打印:
vector<Vec3b> buf;
/* code that fills buf , I used push_back */
printf("%WHAT", buf[1])
我可以像这样使用 cout 打印这些值:
LineIterator it(img, Point(1,1), Point(20,20), 8);
vector<Vec3b> buf;
for(int i=0; i<it.count; i++)
{
buf.push_back( Vec3b(*it) ); /* code that fills buf , I used push_back */
it++;
}
cout << Mat(buf[1]) << endl;
但我只想使用 printf 来完成此操作。
cout 语句给了我三个值,每个值对应于 R、G 和 B。
我应该在 printf 中为 WHAT 放置什么?即这里的格式说明符是什么?
最佳答案
没有直接的方法可以做到这一点。 opencv 中有重载的 << 运算符,但没有 c 解决方案(你为什么要这个?)
你将不得不手动完成这一切:
for(size_t i=0; i<buf.size(); i++)
{
Vec3b v = buf[i];
printf("[%d %d %d] ", v[0], v[1], v[2] );
}
printf("\n");
关于c++ - 使用 printf 时 vector<Vec3b> 的格式说明符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24503189/