在OpenCV

时间:2017-08-25 21:44:46

标签: opencv std mat

我需要访问包含cv::Mat的{​​{1}}的实部特定元素。

OpenCV提供了如何创建复杂std::complex<double> here的代码(搜索关键字“complex”的页面,第一次提到该单词就是示例)。

这是我的尝试:

cv::Mat_

1 个答案:

答案 0 :(得分:1)

Mat填充了std::complex<double>类型,但您在撰写double时正在请求B.at<double>(0, 0);返回类型为double,它没有.real()方法。相反,您需要返回Mat所持有的复杂类型:

cout << "B(0,0) = " << B.at<std::complex<double> >(0, 0).real();
  

B(0,0)= 0

如果你想设置一个虚数,你需要将它实际传递到矩阵中,否则它只是设置真实部分:

B.at<double>(0, 0) = 2;
cout << "B(0,0) = " << B.at<std::complex<double> >(0, 0);
  

B(0,0)=(2,0)

B.at<std::complex<double> >(0, 0) = std::complex<double> (2, 1);
cout << "B(0,0) = " << B.at<std::complex<double> >(0, 0);
  

B(0,0)=(2,1)