ここから本文です

ImageJのマクロについての質問です。

bam********さん

2018/7/918:47:36

ImageJのマクロについての質問です。

画像内に複数ある同画素値ピクセルのうち、
こちらが指定する数ぶんのピクセルをランダムに選択し、
こちらが指定する画素値に一律に置き換える
といったことはImageJのマクロで可能でしょうか。

たとえば、
開いた画像内に画素値50のピクセルが20個あったとして、
この20個のピクセルのうちランダムな10個のピクセルの画素値を100に変更する・・
というような処理を行いたいのです。

このような処理をそのまま行える関数はないかと思うのですが、
代替の手段があればアドバイスをいただきたいです。
よろしくお願いいたします。

閲覧数:
67
回答数:
2
お礼:
500枚

違反報告

ベストアンサーに選ばれた回答

poi********さん

2018/7/923:26:56

マクロで書くことは可能ですが、メニューのコマンドでそのまま使えるものはないので、普通にプログラミングするしかないです。

  • poi********さん

    2018/7/1014:38:17

    こんなんですかね。長いので分割します。投稿時に行頭のインデントが消えてしまうようので適宜補ってください。

    target_intensity = 102; //塗替え対象の画素の明るさ
    w = getWidth;
    h = getHeight;
    total_pixel_number = w * h;
    scan_pixel = newArray(total_pixel_number);
    scan_counter = 0;

    //画像内の各画素をスキャンして、目的の明るさの画素がある座標を配列scan_pixelに書き込む
    //2次元の座標は1次元に変換する
    //変数scan_counterは目的の明るさの画素の数

    for (y=0; y<h; y++){
    for (x=0; x<w; x++){
    pixel_intensity = getPixel(x,y);
    if (pixel_intensity == target_intensity) {
    coordinate_1D = y*h+x;
    //print(x, y, coordinate_1D, pixel_intensity);
    scan_pixel[scan_counter] = coordinate_1D;
    scan_counter++;
    }
    }
    }
    print(scan_counter, "pixels are found in this picture.");


  • その他の返信(3件)を表示

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

質問した人からのコメント

2018/7/11 23:01:06

ベストアンサーにさせていただきます。
ありがとうございました。

ベストアンサー以外の回答

1〜1件/1件中

プロフィール画像

カテゴリマスター

ray********さん

2018/7/1008:21:19

>代替の手段
?マクロを使うのでしょう?代替?

マクロでやる場合は各画素の座標なりを配列変数に入れておいて、乱数を使って「指定する」個数の画素を抽出し、その座標を適宜塗りつぶせば良いと思います。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる