LoginSignup
2
6

More than 3 years have passed since last update.

【ImageJ Fiji,Python】砂嵐画像を任意のピクセル数で簡単に生成する方法

Last updated at Posted at 2019-11-29

砂嵐画像

こういうやつです。
Shaderで任意のピクセル数の砂嵐画像がほしいな~となったので作成する方法を調べました。
もっと楽な方法あったら教えて下さい。
Rundom.PNG

ImageJ Fijiとは?

ImageJとは、Java というプログラミング言語で書かれた画像解析のためのソフトウェアです。

Fiji はその ImageJ の種類の内の一つで、元々の ImageJ に様々な機能が追加されているパッケージです。オープンソースである ImageJ は、研究者・開発者により機能の追加が容易にできます。Fiji is just ImageJ (Fiji こそがまさに ImageJ だ)と表現されるように、Fiji はオープンソースである ImageJ の利点を最大限に活かして多くの機能が追加され、まとめられています。

Fiji をインストールすれば多くの機能を利用することができます。例えば、超解像顕微鏡の一つであるSTOMのデータ解析のためのプラグインが含まれています。また、Java 以外のプログラミング言語で ImageJ を操作したり機能の追加をする機能も付属しています。

【引用元】:ImageJ について

手順

まずはImageJ Fijiをダウンロードします。
ダウンロードリンク

ダウンロード完了したらImageJ-win64.exeを起動します。

画像の通りにText Windowを開きます
Fiji.png

Editorの言語設定をPythonにします。
FijiLanguage.png

コード

バイオ系だけどプログラミング始めました より拝借
import random
from ij import ImagePlus
from ij.process import ByteProcessor


def IntByteConverter(inputnumber):
    if inputnumber <= 127:
        return inputnumber

    else:
        return -(256 - inputnumber)


width = 100
height = 100
image_values = []
for i in range(width):
    for j in range(height):
        image_values += [IntByteConverter(random.randrange(0, 256, 1))]

bp = ByteProcessor(width, height, image_values)
imp = ImagePlus("Random", bp)

imp.show()

Runを押すと画像が生成されます。
あとはCtrl+Sで画像を保存すればOKです。
CreateImage.PNG

砂嵐のピクセル数を変更したい場合は下記の箇所の数値を変えれば可能です。


width = 10
height = 10

CreateImage10.PNG


2019/11/30 追記

かなり短く書ける方法を教えて頂きました。

from ij.gui import NewImage

imp = NewImage.createByteImage("noise", 10, 10, 1, NewImage.GRAY8 + NewImage.FILL_BLACK)
imp.getProcessor().noise(100)
imp.show()

java.lang.IllegalArgumentException

保存したPythonファイルを指定して実行する際にこのエラーが出ました。
保存先のディレクトリ名にマルチバイト文字が含まれているとダメっぽいです。

参考リンク

ランダムな砂嵐画像を作る ImageJ + Python のプログラム

2
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
6