当normType = norM_MINMAX(仅适用于密集数组)时,函数会对scale进行规范化并移动输入数组元素,以便:
equations http://docs.opencv.org/_images/math/31bceb122fccfc14279355379f91c7b269290386.png
因此,如果使用normalize(src,norM_MINMAX,CV_32F);,您的数据将被标准化,以使最小值为0,最大值为1.
通过给出图像的像素值0.0和1.0的范数,你不清楚你的意思.在您编写时,我了解您要对像素值进行标准化,以便通过堆叠图像列获得的向量的范数为1.0.如果这是您想要的,您可以使用meanStdDev(documentation)并执行以下 *** 作(假设您的图像是灰度):
cv::Scalar avg,sdv;cv::meanStdDev(image,avg,sdv);sdv.val[0] = sqrt(image.cols*image.rows*sdv.val[0]*sdv.val[0]);cv::Mat image_32f;image.convertTo(image_32f,CV_32F,1/sdv.val[0],-avg.val[0]/sdv.val[0]);
如果您只想标准化以使像素值的方差为1,则忽略第3行.
是的,CV_32F意味着生成的图像将使用32位浮点数据类型(即浮点数).
总结以上是内存溢出为你收集整理的c – OpenCV:规范化图像的像素值全部内容,希望文章能够帮你解决c – OpenCV:规范化图像的像素值所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)