摘自 百度百科 复数介绍https://baike.baidu.com/item/%E5%A4%8D%E6%95%/254365?fr=aladdin
共轭复数,两个实部相等,虚部互为相反数的复数互为共轭复数(conjugate complex number)。当虚部不为零时,共轭复数就是实部相等,虚部相反,如果虚部为零,其共轭复数就是自身(当虚部不等于0时也叫共轭虚数)。复数z的共轭复数记作z(上加一横),有时也可表示为Z*。同时, 复数z(上加一横)称为复数z的复共轭(complex conjugate)。
。
Opencv中的复数类与 STL中的复数类模板 complex<> 不一样,但是与之兼容,可以相互转换.
最大的区别在于成员函数的获取, STL中是通过成员函数 real()和image()来获取,而在Opencv中,是通过成员变量re和im获取.
template<typename _Tp> class Complex
{
public:
//! default constructor
Complex();
Complex( _Tp _re, _Tp _im = 0 );
//! conversion to another data type
template<typename T2> operator Complex<T2>() const;
//! conjugation
Complex conj() const;
_Tp re, im; //< the real and the imaginary parts
};
int main() {
cv::Complex<float> z1(2.0,4.5);
cv::Complex<float> z2(3.0,4.0);
z2 += z1;
std::cout << z1.re << " " <<z1.im << std::endl; // cout 2 4.5
std::cout << z2.re << " " <<z2.im << std::endl; // cout 5 8.5
std::cout << z1.conj().re << " " << z1.conj().im << std::endl; // 2 -4.5,输出共轭复数
std::cout << "hello world" << std::endl;
return 0;
}