我需要访问包含cv::Mat
的{{1}}的实部特定元素。
OpenCV提供了如何创建复杂std::complex<double>
here的代码(搜索关键字“complex”的页面,第一次提到该单词就是示例)。
这是我的尝试:
cv::Mat_
答案 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)