9

シナリオは次のとおりです。サイズが 50 バイトから 8k の間のランダムな小さな jpg のセットを作成したいのですが、jpeg の実際のビジュアル コンテンツは、それらが有効である限り無関係です。1000 個ほど生成する必要があり、それらはすべて一意である必要があります - たとえそれらが 1 ピクセルだけ異なっていたとしてもです。そこに jpeg ヘッダー/フッターといくつかのランダムなバイトを書き込むことはできますか? Web から既存の写真や写真のセットを使用できません。

2 つ目の問題は、プログラムを実行するたびにイメージのセットが異なる必要があることです。

ラッピング スクリプトは Python で作成されているため、これは Python で行うことをお勧めします。

ゼロからjpgを生成するためのpythonコードを探しましたが、何も見つからなかったので、ライブラリへのポインタは同じくらい良いです.

4

3 に答える 3

16

画像がランダム ノイズにすぎない場合は、numpy.randomPIL を使用して配列を生成し、保存することができますImage.save

この例は、(非常にありそうもない) パターンの繰り返しを回避する方法を含めて拡張される可能性があります。

import numpy
from PIL import Image

for n in range(10):
    a = numpy.random.rand(30,30,3) * 255
    im_out = Image.fromarray(a.astype('uint8')).convert('RGB')
    im_out.save('out%000d.jpg' % n)

jpeg 画像を取得するには、次の条件を満たす必要があります。

  1. 配列は (m, n, 3) の形にする必要があります - RG と B の 3 色。
  2. 各要素 (各ピクセルの各色) は、0 ~ 255 のバイト整数 (uint、または 8 ビットの符号なし整数) である必要があります。

さらに、純粋なノイズが必要ない場合に備えて、純粋なランダム性以外の方法を使用して画像を生成することもできます。

于 2012-06-05T16:26:04.920 に答える