正規分布に従うopencvを使用して20X20イメージを作成しようとしています。そのようなことを可能にするrandn関数があることは理解していますが、埋め込むつもりならどうすればいいですか?作成しようとしている画像のデータ内の文字列?
質問する
2592 次
1 に答える
2
一様ガウス乱数については、こちらをご覧ください: 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 データ ビットが必要な場合 (テキストを肉眼で見やすくするため)、マスクから 3 (2 進数で 11) ではなく 127 (7 個の 1 の 2 進数) を減算します。
于 2013-01-13T21:02:14.293 に答える