c – 使用min和max在Mat中缩放每个单元格
发布时间:2020-12-16 10:01:14 所属栏目:百科 来源:网络整理
导读:我无法找出使用给定范围缩放cv :: Mat中所有单元格的函数.它似乎是一个非常有用的功能,或者我应该手动迭代矩阵? 我真正想要做的是扩展CvSVM的训练数据.每列都有各自的原因. 解决方法 没有内置函数可以做到这一点,但可以通过在每个 column上应用带有参数NORM
我无法找出使用给定范围缩放cv :: Mat中所有单元格的函数.它似乎是一个非常有用的功能,或者我应该手动迭代矩阵?
我真正想要做的是扩展CvSVM的训练数据.每列都有各自的原因. 解决方法
没有内置函数可以做到这一点,但可以通过在每个
column上应用带有参数NORM_MINMAX的
normalize来轻松完成.
请参阅示例,其中数据是原始数据,缩放是缩放输出,其中每列在[0,1]范围内独立标准化: #include <opencv2/opencv.hpp> #include <iostream> using namespace std; using namespace cv; int main() { Mat1f data = (Mat1f(3,4) << 0.1f,2.f,30.f,500.f,0.55f,22.f,330.f,5500.f,1.f,12.f,3030.f,50500.f); float out_min = 0.f; float out_max = 1.f; Mat1f scaled(data.rows,data.cols,0.f); for (int c = 0; c < data.cols; ++c) { normalize(data.col(c),scaled.col(c),out_min,out_max,NORM_MINMAX); } cout << scaled << endl; // Scaled data: // 0.0 0.0 0.0 0.0 // 0.5 1.0 0.1 0.1 // 1.0 0.5 1.0 1.0 return 0; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |