C++ 平均值、标准差等
嘿,我得解决一些问题。我加载两个图像并将它们转换为float。然后我把颜色空间转换成实验室。我把颜色空间分割成通道。 现在我想用输入(图像)的平均值减去每个通道输入(图像)的平均值(因此新的平均值为0) 将输入除以自身的标准偏差(因此新的标准偏差为0) 你有什么建议我怎样才能做到这一点C++ 平均值、标准差等,c++,opencv,C++,Opencv,嘿,我得解决一些问题。我加载两个图像并将它们转换为float。然后我把颜色空间转换成实验室。我把颜色空间分割成通道。 现在我想用输入(图像)的平均值减去每个通道输入(图像)的平均值(因此新的平均值为0) 将输入除以自身的标准偏差(因此新的标准偏差为0) 你有什么建议我怎样才能做到这一点 #include <opencv2/core.hpp> #include "opencv2/imgcodecs.hpp" #include "opencv2/opencv
#include <opencv2/core.hpp>
#include "opencv2/imgcodecs.hpp"
#include "opencv2/opencv.hpp"
using namespace std;
using namespace cv;
int main() {
//Bilder hochladen
Mat input = imread("C:\\Users\\...\\Desktop\\..\\input.png");
Mat target = imread("C:\\Users\\...\\Desktop\\..\\target.png");
// In Fliesskommazahlen umwandeln
input.convertTo(input, CV_32FC3, 1.0 / 255);
target.convertTo(target, CV_32FC3, 1.0 / 255);
//Konvertieren Sie beide Bilder in den Lab-Farbraum
cvtColor(input, input, COLOR_BGR2Lab);
cvtColor(target, target, COLOR_BGR2Lab);
vector<Mat> channels;
split(input, channels);
Scalar m = mean(channels[0]);
//My try to substrct the average value for every channel
m[0] = m[0] - m[0];
cout << m[0] << endl;
m[1] = m[1] - m[1];
cout << m[1] << endl;
m[2] = m[2] - m[2];
cout << m[2] << endl;
cvtColor(input, input, COLOR_Lab2BGR);
imshow("Ergebnis", input);
waitKey(0);
return 0;
}
#包括
#包括“opencv2/imgcodecs.hpp”
#包括“opencv2/opencv.hpp”
使用名称空间std;
使用名称空间cv;
int main(){
//比尔德霍奇拉德酒店
Mat input=imread(“C:\\Users\\\…\\Desktop\\\\\input.png”);
Mat target=imread(“C:\\Users\\\…\\Desktop\\\\\\target.png”);
//在飞行中
输入.convertTo(输入,CV_32FC3,1.0/255);
target.convertTo(target,CV_32FC3,1.0/255);
//你在实验室里工作吗
cvtColor(输入,输入,颜色);
CVT颜色(目标、目标、颜色);
矢量通道;
分割(输入,通道);
标量m=平均值(通道[0]);
//我尝试将每个通道的平均值细分
m[0]=m[0]-m[0];
coutm[0]=m[0]-m[0];
——因此,通过从自身减去平均值,您有效地将刚刚计算的平均值设置为零。(其他部分有些冗余,因为您只计算了1个通道的平均值,所以它们已经为零)。如果我只使用m[0]=m[0]-m[0]
我对每个频道都这样做?所以我只需要m[0]=m[0]-m[0]
?我的英语不是最好的,但我试图理解x=x-x
与x=0
是一样的。你的描述说这就是你想要做的(“用输入(图像)的平均值减去每个频道的平均值)所以我猜你在什么地方误解了什么。好吧,这可能是错的。但是我如何解决这个问题-->现在我想用输入(图像)的平均值减去每个通道的输入(图像)的平均值(因此新的平均值是0),然后将输入除以自己的标准偏差(因此新的标准偏差为0)