c++ - 使用 OpenCV C++ 创建遵循高斯分布的图像

标签 c++ image-processing opencv

我正在尝试使用 opencv 创建一个遵循正态分布的 20X20 图像,我知道有一个 randn 函数可以让我做类似的事情,但是如果我打算的话,我应该如何去做呢在我尝试创建的图像数据中嵌入字符串?

最佳答案

在此处查看均匀到高斯随机数:http://www.design.caltech.edu/erik/Misc/Gaussian.html

如果您想将最后 2 个数据位(最低有效位)用于隐藏文本,则需要在噪声图像中将它们设置为零。

接下来,创建 3 个图像:

Image noise, mask, textimg

AddNoiseTo(noise) // any kind of noise you want


SetEveryPixel(mask,unsigned char, 255-3)
CvAnd(noise,mask,noise) // to remove noise from the last 2 bits


cvPutText(textimg,yourtext,white);
CvNot(mask,mask) // invert the mask to remove data from the first 6 bits
CvAnd(textimg,mask,textimg) // filter the text image so only last 2 bits are kept
CvOr(noise,textimg,outputimg) // this will merge the two images

如果您想要 7 个数据位(以便更容易用肉眼看到文本),请从掩码中减去 127(二进制为 7 个 1),而不是 3(二进制为 11)。

关于c++ - 使用 OpenCV C++ 创建遵循高斯分布的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14275939/

相关文章:

java - 如何在 IntelliJ 插件中使用 jai-imageio

arrays - Opencv:将RGB矩阵转换为一维数组

visual-studio-2010 - Cuda 项目未编译

python - 使用python和opencv进行IP摄像头模拟

c++ - C++ 中可变参数模板对的打印方法

c++ - 将文本写入二进制文件 - 有什么区别?

.net - 一个像素输出 - OnPaint - System::Drawing::Rectangle rectangle = this->ClientRectangle;

c++ - WSARecv 如何使用 lpOverlapped?我怎样才能手动发出事件信号?

image - 使用 SkiaSharp 调整大小时 iPhone 图像方向错误

c++ - 在 C++ 中对 Kinect 生成的点进行分组