21.2。 imageop —生の画像データを操作する
バージョン2.6以降非推奨: imageop モジュールはPython3で削除されました。
imageop モジュールには、画像に対するいくつかの便利な操作が含まれています。 Python文字列に格納された8ビットまたは32ビットのピクセルで構成される画像を操作します。 これは、gl.lrectwrite()
および imgfile モジュールで使用されるものと同じ形式です。
このモジュールは、次の変数と関数を定義します。
- exception imageop.error
- この例外は、ピクセルあたりのビット数が不明など、すべてのエラーで発生します。
- imageop.crop(image, psize, width, height, x0, y0, x1, y1)
- image の選択された部分を返します。これは、サイズが width x height で、 psize バイトのピクセルで構成されている必要があります。 x0 、 y0 、 x1 、 y1 は、
gl.lrectread()
パラメーターに似ています。 境界は新しい画像に含まれます。 新しい境界は、画像の内側にある必要はありません。 古い画像の外にあるピクセルの値はゼロに設定されます。 x0 が x1 より大きい場合、新しいイメージがミラーリングされます。 同じことがy座標にも当てはまります。
- imageop.scale(image, psize, width, height, newwidth, newheight)
- newheight によってサイズ newwidth にスケーリングされた image を返します。 補間は行われず、スケーリングは単純なピクセルの複製または削除によって行われます。 したがって、コンピューターで生成された画像やディザリングされた画像は、スケーリング後に見栄えが悪くなります。
- imageop.tovideo(image, psize, width, height)
- 画像に対して垂直ローパスフィルターを実行します。 これは、各宛先ピクセルを2つの垂直に配置されたソースピクセルの平均として計算することによって行われます。 このルーチンの主な用途は、インターレースを使用するビデオデバイスに画像が表示される場合に、過度のちらつきを未然に防ぐことです。
- imageop.grey2mono(image, width, height, threshold)
- すべてのピクセルをしきい値処理して、8ビットの深さのグレースケール画像を1ビットの深さの画像に変換します。 結果の画像は密集しており、おそらく mono2grey()の引数としてのみ役立ちます。
- imageop.dither2mono(image, width, height)
- (単純な)ディザリングアルゴリズムを使用して、8ビットのグレースケール画像を1ビットのモノクロ画像に変換します。
- imageop.mono2grey(image, width, height, p0, p1)
- 1ビットのモノクロ画像を8ビットのグレースケールまたはカラー画像に変換します。 入力でゼロ値のすべてのピクセルは出力で値 p0 を取得し、すべての1値入力ピクセルは出力で値 p1 を取得します。 モノクロの白黒画像をグレースケールに変換するには、それぞれ値
0
と255
を渡します。
- imageop.grey2grey4(image, width, height)
- ディザリングなしで、8ビットのグレースケール画像を4ビットのグレースケール画像に変換します。
- imageop.grey2grey2(image, width, height)
- ディザリングなしで、8ビットのグレースケール画像を2ビットのグレースケール画像に変換します。
- imageop.dither2grey2(image, width, height)
- ディザリングを使用して、8ビットのグレースケール画像を2ビットのグレースケール画像に変換します。 dither2mono()に関しては、ディザリングアルゴリズムは現在非常に単純です。
- imageop.grey42grey(image, width, height)
- 4ビットのグレースケール画像を8ビットのグレースケール画像に変換します。
- imageop.grey22grey(image, width, height)
- 2ビットのグレースケール画像を8ビットのグレースケール画像に変換します。
- imageop.backward_compatible
- 0に設定すると、このモジュールの関数は、リトルエンディアンシステムでマルチバイトピクセルを表す下位互換性のない方法を使用します。 このモジュールが最初に作成されたSGIはビッグエンディアンシステムであるため、この変数を設定しても効果はありません。 ただし、コードは元々他のもので実行することを意図していなかったため、普遍的ではないバイト順序についての仮定を行いました。 この変数を0に設定すると、リトルエンディアンシステムではバイト順序が逆になり、ビッグエンディアンシステムと同じになります。