Mat::ones(1, n, CV_32FC1);这行代码生成一个卷积核,我想问一下CV_32FC1在这个函数里代表什么?

Mat::ones(1, n, CV_32FC1) / n;这行代码生成一个卷积核,我想问一下CV_32FC1在这个函数里代表什么?

另外,他生成的卷积核应该长什么样子?

32FC1表示32位浮点数,即float,c1指的是channel1即只有一个通道。

1,n 是1*n 的矩阵
CV_32FC1 。 建议打开工程,然后,点击CV_32FC1 ,转到源码查看。 几次追溯后就看明白。
从字面意思 32F 是数据类型 指folat类型,C1是通道数=1。
搜索引擎都能搜到。


如何在OpenCV中找到Mat对象的类型::type()?
    https://cloud.tencent.com/developer/ask/108726
        string type2str(int type) {
            string r;
            uchar depth = type & CV_MAT_DEPTH_MASK;
            uchar chans = 1 + (type >> CV_CN_SHIFT);
            switch ( depth ) {
                case CV_8U:  r = "8U"  ; break;
                case CV_8S:  r = "8S"  ; break;
                case CV_16U: r = "16U" ; break;
                case CV_16S: r = "16S" ; break;
                case CV_32S: r = "32S" ; break;
                case CV_32F: r = "32F" ; break;
                case CV_64F: r = "64F" ; break;
                default:     r = "User"; break;
            }
            r += "C";
            r += (chans+'0');
            return r;
        }
        // Value  C1 C2 C3 C4 C5 C6 C7 C8
        // ====== == == == == == == == ==
        // CV_8U   0  8 16 24 32 40 48 56
        // CV_8S   1  9 17 25 33 41 49 57
        // CV_16U  2 10 18 26 34 42 50 58
        // CV_16S  3 11 19 27 35 43 51 59
        // CV_32S  4 12 20 28 36 44 52 60
        // CV_32F  5 13 21 29 37 45 53 61
        // CV_64F  6 14 22 30 38 46 54 62