C++ OpenCV: Adding Gaussian Noise to cv::Point3f
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
#include <random>
cv::Point3f addGaussianNoise(cv::Point3f point, float noiseLevel)
{
// Create a random number generator
std::default_random_engine generator;
std::normal_distribution<float> distribution(0.0f, noiseLevel);
// Add noise to each coordinate separately
point.x += distribution(generator);
point.y += distribution(generator);
point.z += distribution(generator);
return point;
}
int main()
{
// Create a sample point
cv::Point3f point(1.0f, 2.0f, 3.0f);
// Add noise to the point
float noiseLevel = 0.1f;
cv::Point3f noisyPoint = addGaussianNoise(point, noiseLevel);
// Print the results
std::cout << "Original point: (" << point.x << ", " << point.y << ", " << point.z << ")" << std::endl;
std::cout << "Noisy point: (" << noisyPoint.x << ", " << noisyPoint.y << ", " << noisyPoint.z << ")" << std::endl;
return 0;
}
This code defines a function 'addGaussianNoise' that takes a 'cv::Point3f' and a 'noiseLevel' as input. It creates a random number generator using 'std::default_random_engine' and 'std::normal_distribution' from the '
In the 'main' function, we create a sample point and add noise to it using the 'addGaussianNoise' function. We then print the original and noisy points to the console.
Note that the amount of noise added is controlled by the 'noiseLevel' parameter. This parameter specifies the standard deviation of the normal distribution used to generate the noise. A higher value of 'noiseLevel' will result in more noise being added to the point.
原文地址: https://www.cveoy.top/t/topic/odts 著作权归作者所有。请勿转载和采集!