• 我的问题


    #include<opencv2/opencv.hpp>]
    #include<iostream>
    
    
    int main(int argc, char** argv) {
    
        cv::Mat src = cv::Mat(10,10,CV_32FC1,cv::Scalar(1));
        cv::Mat tmp;
        cv::Mat srcPlanes[] = {cv::Mat_<float>(src),cv::Mat::zeros(src.size() , CV_32FC1)};
        /*
        第一通道就是src
        第二通道:虚数通道
        */
        cv::Mat dstPlanes[2];
        cv::merge(srcPlanes, 2, tmp);
        cv::dft(tmp, tmp, 0); // 进行傅立叶变换(把空域变成频域)
        /*
        参数1:InputArray src: 输入图像,可以是实数或虚数;必须是单通道或双通道,数据类型必须是float
                对于单通道:输入被认为是实数,输出结果保存为CCS格式
                对于双通道:输入分别被认为是实数和虚数部分---建议双通道,便于区分实数和虚数
                    第一通道是实数,第二通道是虚数
        参数2:OutputArray dst: 输出图像,其大小和类型取决于第三个参数flags
        参数3:int flags = 0: 转换的标识符,有默认值0.其可取的值如下所示:
                cv::DFT_INVERSE=1: 用一维或二维逆变换取代默认的正向变换
                DFT_SCALE=2: 缩放比例标识符,根据数据元素个数平均求出其缩放结果,如有N个元素,
    
    则输出结果以1/N缩放输出,常与DFT_INVERSE搭配使用
                DFT_ROWS: 对输入矩阵的每行进行正向或反向的傅里叶变换;此标识符可在处理多种适
    
    量的的时候用于减小资源的开销,这些处理常常是三维或高维变换等复杂操作
                DFT_COMPLEX_OUTPUT: 对一维或二维的实数数组进行正向变换,这样的结果虽然是复数
    
    阵列,但拥有复数的共轭对称性(CCS),可以以一个和原数组尺寸大小相同的实数数组进行填充,这
    
    是最快的选择也是函数默认的方法。你可能想要得到一个全尺寸的复数数组(像简单光谱分析等等)
    
    ,通过设置标志位可以使函数生成一个全尺寸的复数输出数组
                DFT_REAL_OUTPUT: 对一维二维复数数组进行逆向变换,这样的结果通常是一个尺寸相同
    
    的复数矩阵,但是如果输入矩阵有复数的共轭对称性(比如是一个带有DFT_COMPLEX_OUTPUT标识符的
    
    正变换结果),便会输出实数矩阵
                int nonzeroRows = 0: 当这个参数不为0,函数会假设只有输入数组(没有设置
    
    DFT_INVERSE)的第一行或第一个输出数组(设置了DFT_INVERSE)包含非零值。这样的话函数就可以
    
    对其他的行进行更高效的处理节省一些时间,这项技术尤其是在采用DFT计算矩阵卷积时非常有效
    
        */
    
        cv::split(tmp, dstPlanes);
        cv::Mat matReal = dstPlanes[0]; //提取实数部分
        cv::Mat matImaginary = dstPlanes[1];  //提取虚数部分
    
        
    
    
    
    
    
        cv::waitKey(0);
        return 0;
    }
  • 相关阅读:
    poj 1265 Area(Pick定理)
    poj 2954 Triangle(Pick定理)
    poj 1654 Area(多边形面积)
    bzoj 1069 [SCOI2007]最大土地面积(旋转卡壳)
    227 用栈模拟汉诺塔问题
    213 字符串压缩
    212 空格替换
    211 字符串置换
    209 First Unique Character in a String
    197 排列序号
  • 原文地址:https://www.cnblogs.com/liming19680104/p/15722173.html
Copyright © 2020-2023  润新知