c – OpenCV:规范化图像的像素值

c – OpenCV:规范化图像的像素值,第1张

概述我试图将图像像素值标准化为具有0.0的平均值和1.0的范数,以使图像具有一致的强度.有一个OpenCV函数,即cvNormalize(src,dst,0,1,cv_MINMAX),但是这个函数可以用于我的目的吗?任何帮助表示赞赏.谢谢. 不, documentation for normalize说: 当normType = NORM_MINMAX(仅适用于密集数组)时,函数会对scale进行规 我试图将图像的像素值标准化为具有0.0的平均值和1.0的范数,以使图像具有一致的强度.有一个OpenCV函数,即cvnormalize(src,dst,1,cv_MINMAX),但是这个函数可以用于我的目的吗?任何帮助表示赞赏.谢谢.解决方法 不,documentation for normalize说:

当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:规范化图像的像素值所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1220099.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存