【问题标题】:OpenCV 2.1: where is ostream operator<< for cv::Mat?OpenCV 2.1:ostream operator<< for cv::Mat 在哪里?
【发布时间】:2012-04-04 13:10:30
【问题描述】:

this question 之后,我正在尝试将cv::Mat 的内容打印到标准输出:

#include <iostream>
#include <opencv/cv.h>
#include <opencv/cv.hpp>
#include <opencv/cxcore.h>
#include <opencv/cxcore.hpp>

int main() {

  cv::Mat m = cv::Mat::ones(10, 10, CV_32S);
  std::cout << m << "\n";

}

这会导致错误

error: no match for ‘operator<<’ in ‘std::cout << m’

我在 Ubuntu 11.10 上使用 gcc 4.6.1,并安装了 opencv,不包括示例,遵循these instructions。我的问题是,该运算符是否在 2.1 中可用,如果可以,我如何获得它?

【问题讨论】:

  • 如果没有定义算子,可能需要升级到2.2或以上。

标签: c++ opencv


【解决方案1】:

更新到 OpenCV 2.2(或更高版本)和#include &lt;opencv2/opencv.hpp&gt;

定义在modules/core/include/opencv2/core/operations.hpp

【讨论】:

  • 谢谢。经过相当痛苦的 opencv 2.3.1 安装后,它可以工作了。该示例所需的唯一标头是 .
【解决方案2】:

如果未定义运算符,您可能需要升级到 2.2 或更高版本。 记录在 Here 中,您可以在其中找到重载的运算符代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-03
    • 1970-01-01
    • 1970-01-01
    • 2014-06-27
    • 1970-01-01
    相关资源
    最近更新 更多