Merge Channelsについて

1,190 views
Skip to first unread message

sicrum8

unread,
Nov 12, 2016, 3:54:12 AM11/12/16
to ImageJ-jp
メーリングリストというものを初めて使用します。
勝手がわからないので間違えていたらすみません。

短いマクロを作成したのですが、エラーとなってしまいます。
エラーは、枠に
「Merge Channels」と記載され、中に
「There must be at least one source image or stack.」と記載されます。

     title = getTitle(); 
     ch1title = "C1-" + title; 
     ch2title = "C2-" + title; 
     run("Split Channels"); 
     run("Merge Channels...", "c2=[ch1title]   c6=[ch2title]   create ignore"); 

c2=の右の引数の書き方と、
c6=の右の引数の書き方が悪いと思うのですが、どう直せばよいでしょうか。
2色3次元のハイパースタック画像(添付します)を、
3次元のマージ画像にするためのマクロです。

ちなみに下のように書くとちゃんと動作します。(このファイルにしか使えないですが・・・)
run("Split Channels");
run("Merge Channels...", "c2=[C1-den1 100xx6 LL1 end LR1 end.oif] c6=[C2-den1 100xx6 LL1 end LR1 end.oif] create ignore");

宜しくお願いします。
den1 100xx6 LL1 end LR1 end.oif

塚田 祐基

unread,
Nov 13, 2016, 9:41:21 PM11/13/16
to sicrum8, ImageJ-jp
こんにちは、名古屋大の塚田です。

> メーリングリストというものを初めて使用します。
> 勝手がわからないので間違えていたらすみません。
どしどし使ってみてください。ただ、記名をしないと返答がしずらく、
議論になったときにも混乱を招くのでハンドルネームでもいいので何かかいてもらえればと思います。個人的には実名の方が何かと便利だとは思います。
添付ファイルは確認できなかったのですが、
サンプルファイルのflybrainが似たものだと推測して手順を確認しました。
たしかに、ファイルは開いているのに
「There must be at least one source image or stack.」
のダイアログが出現しますね。

以下ような形で、一回名前を書き換えてから改めて指定すると上手くいったので、試してみてください。
list = getList("image.titles");
if (list.length==0)
print("No image windows are open");
else {
print("Image windows:");
for (i=0; i<list.length; i++)
print(" "+list[i]);
}
print("");
selectWindow(list[0]);
rename("red");
selectWindow(list[1]);
rename("green");
run("Merge Channels...", "c2=[red] c6=[green] create ignore");

前半は余計ですが、以下のスクリプトを参考に、
開いているウィンドウたちから一回名前のリストを作成しています。
https://imagej.nih.gov/ij/macros/DisplayWindowTitles.txt

楽しいImageJライフを!


塚田 祐基

> --
> このメールは Google グループのグループ「ImageJ-jp」に登録しているユー
> ザーに送られています。
> このグループから退会し、グループからのメールの配信を停止するには
> imagej-jp+...@googlegroups.com
> <mailto:imagej-jp+...@googlegroups.com> にメールを送信してください。
> このグループに投稿するには imag...@googlegroups.com
> <mailto:imag...@googlegroups.com> にメールを送信してください。
> このディスカッションをウェブ上で閲覧するには
> https://groups.google.com/d/msgid/imagej-jp/848c08bd-b77c-4a88-a8be-d945045c8155%40googlegroups.com
> <https://groups.google.com/d/msgid/imagej-jp/848c08bd-b77c-4a88-a8be-d945045c8155%40googlegroups.com?utm_medium=email&utm_source=footer>
> にアクセスしてください。
> その他のオプションについては https://groups.google.com/d/optout にアクセ
> スしてください。

Kota Miura

unread,
Nov 14, 2016, 9:09:49 AM11/14/16
to 塚田祐基, sicrum8, ImageJ-jp
sicrum8さん

塚田さんの方法でもいいのですが、エラーをはいているこのライン

     run("Merge Channels...", "c2=[ch1title]   c6=[ch2title]   create ignore"); 

の、第二引数にある変数、ch1titlech2titleの前に&をつけて

     run("Merge Channels...", "c2=[&ch1title]   c6=[&ch2title]   create ignore"); 

としたらうまくいくのではないかと思います。従来は、

     run("Merge Channels...", "c2=[" + ch1title +"]   c6=[" + ch2title + "]   create ignore"); 

のように、文字列の結合を地道に行う必要がありました。これでもうまくいくと思いますが、v1.43から&によって引数の文字列に直接変数を入れることができるようになったので、使ってみてください。

三浦

imagej-jp+unsubscribe@googlegroups.com
<mailto:imagej-jp+unsubscribe@googlegroups.com> にメールを送信してください。
このグループに投稿するには imag...@googlegroups.com
<mailto:imagej-jp@googlegroups.com> にメールを送信してください。

このディスカッションをウェブ上で閲覧するには
https://groups.google.com/d/msgid/imagej-jp/848c08bd-b77c-4a88-a8be-d945045c8155%40googlegroups.com
<https://groups.google.com/d/msgid/imagej-jp/848c08bd-b77c-4a88-a8be-d945045c8155%40googlegroups.com?utm_medium=email&utm_source=footer>
にアクセスしてください。
その他のオプションについては https://groups.google.com/d/optout にアクセ
スしてください。

--
このメールは Google グループのグループ「ImageJ-jp」の登録者に送られています。
このグループから退会し、グループからのメールの配信を停止するには imagej-jp+unsubscribe@googlegroups.com にメールを送信してください。
このグループに投稿するには、imagej-jp@googlegroups.com にメールを送信してください。
このディスカッションをウェブ上で閲覧するには、https://groups.google.com/d/msgid/imagej-jp/13ec58c5-9cd5-5ec7-69ad-7e6aeabb1e7a%40b.mbox.nagoya-u.ac.jp にアクセスしてください。
その他のオプションについては、https://groups.google.com/d/optout にアクセスしてください。

sicrum8

unread,
Nov 20, 2016, 6:50:10 AM11/20/16
to ImageJ-jp
私は中野と申します。

申し訳ありません。添付画像については

den1 100xx6 LL1 end LR1 end.oif
同一フォルダに、
den1 100xx6 LL1 end LR1 end.oif.files
という別ファイルを格納するとFijiで開けるのですが、
下記メッセージが出現するため今回は添付を諦めます。

「メッセージコンテンツと添付ファイルがこのグループでの上限を超えています。
大容量ファイルをグループと共有するには、Google ドライブをご利用ください。」

しかしながら問題は解決しました。
塚田先生と三浦先生のご提案のどちらでも正常に動作しました。
塚田先生のmacroは先頭行に
     run("Split Channels"); 
を挿入すると動作しました。
本当にありがとうございます。

ちなみに、
今回のような種類の問題はどのように自己解決してゆけばよいとお考えでしょうか。
自分なりに調べたのですが行き詰まって途方に暮れてしまいました。

中野

2016年11月12日土曜日 17時54分12秒 UTC+9 sicrum8:

塚田 祐基

unread,
Nov 20, 2016, 9:55:41 PM11/20/16
to sicrum8, ImageJ-jp
中野さん、

問題が解決したとのこと、良かったです。

>
今回のような種類の問題はどのように自己解決してゆけばよいとお考えでしょうか。
これ一発で解決、という案はないように思うのですが、
プログラムの仕様を読んだり、ウェブで検索したり、詳しい人に相談したり、
といった地道なことの繰り返しで力がつくかと思います。
このMLもそういったことに利用していただければと思います。

問題の共有は、解決案を出す人、読むだけの人などにも有益なので、
どしどし活用していただければ幸いです。

塚田 祐基
> --
> このメールは Google グループのグループ「ImageJ-jp」に登録しているユー
> ザーに送られています。
> このグループから退会し、グループからのメールの配信を停止するには
> imagej-jp+...@googlegroups.com
> <mailto:imagej-jp+...@googlegroups.com> にメールを送信してください。
> このグループに投稿するには imag...@googlegroups.com
> <mailto:imag...@googlegroups.com> にメールを送信してください。
> このディスカッションをウェブ上で閲覧するには
> https://groups.google.com/d/msgid/imagej-jp/e7d160fb-6153-45f5-bbbc-c523d104a277%40googlegroups.com
> <https://groups.google.com/d/msgid/imagej-jp/e7d160fb-6153-45f5-bbbc-c523d104a277%40googlegroups.com?utm_medium=email&utm_source=footer>
Reply all
Reply to author
Forward
0 new messages