出産前後の痔にはご注意!

ImageJというフリーソフトのマクロ機能についてです。

繰り返し処理を用いてフォルダ内のファイル全てを開きたいと考えています。

フォルダは複数あり、それぞれのフォルダに名前が1、2、3、...というようなファイルが入っています。
ところがフォルダによっては「2」のファイルが入っていなかったり、「7」のファイルが入っていなかったりという状況で困り果てています。

調べてみたところFile.exists(path)というコマンドを使用するとファイルの有無を確認することができることが分かりました。
ファイルが存在する場合は「1」、存在しない場合は「0」がLog画面に表示されていくというものです。

このコマンドで各フォルダにどのファイルが存在するか確認し、Log画面に表示された「1」か「0」の数字をIf構文で場合分けをし、「1」ならばそのファイルを開き「0」ならば何も作業をせずに次へ、ということができるのではないかと考えました。

しかし、Log画面の「1」か「0」の数字をマクロ内で使用する方法がわかりません。
If("Log画面のn行目の数字==1")と書いたり
If("Log画面に表示された直前の数字==1")
のように書くことができれば解決できそうなのですが・・・

どなたかこのようなIf構文の書き方や、全く異なったものでも構わないので上記の作業を可能にできる方法をご存知ならば教えて下さい。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

ログに表示されるのは、マクロに評価関数がそのまま書かれた場合の単なる実行結果であって、File.Exist()関数自体が値を返します。



> If("Log画面のn行目の数字==1")と書いたり
> If("Log画面に表示された直前の数字==1")
> のように書くことができれば解決できそうなのですが・・・

if(File.Exist(path)){ファイルが存在する場合の処理}

とかって出来るのでは?
    • good
    • 0
この回答へのお礼

アドバイス頂いた通りにすると上手くいきました!

本当に助かりました、ありがとうございます!

お礼日時:2015/01/20 16:51

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QImage Jでの細胞面積の測定について

ImageJを使って、骨格筋細胞面積の計測を考えています。骨格筋細胞の辺縁をImageJのThretholdでうまく認識できないため、画像をまずPhotoshopにて取り込み、細胞の辺縁をペンでなぞり、白黒の新たな画像を作り、それをImageJで解析しようとしました。まずProcess-Binary-Make Binaryを行い、その後Find edgesを行いました。そこまではうまく、辺縁を認識できているようでしたが、スケールを設定の上、Analyze particlesを行っても約200程度ある細胞の内の10程度しか認識してくれません。どうも線と線が接しているような場合は認識してくれないような、印象がありました。細胞同士接していることは多々ありますので、そのような場合にどうすれば、細胞として認識してくれるのか、わかる方いらっしゃいましたら、ぜひご教授いただきたく存じます。どうも文章ではうまくニュアンスが伝わらないのですが。

なお、Binary-Watershedも行いましたが、いらん所を分割してしまい、全く使えませんでした。先輩に聞いたところ、昔のversionではできた。などど言われました。ちなみに今使用しているバージョンは1.37です。1.40でも試しましたが、同じ結果でした。

よろしくお願いします。

ImageJを使って、骨格筋細胞面積の計測を考えています。骨格筋細胞の辺縁をImageJのThretholdでうまく認識できないため、画像をまずPhotoshopにて取り込み、細胞の辺縁をペンでなぞり、白黒の新たな画像を作り、それをImageJで解析しようとしました。まずProcess-Binary-Make Binaryを行い、その後Find edgesを行いました。そこまではうまく、辺縁を認識できているようでしたが、スケールを設定の上、Analyze particlesを行っても約200程度ある細胞の内の10程度しか認識してくれません。どうも線と線が接して...続きを読む

Aベストアンサー

どうすればImageJで不明瞭な細胞の境界を識別させられるかはわからないので、境界線を手でなぞる場合について書いてみます。

Photoshopのペンツールで細胞の輪郭をなぞる時(ImageJのペンシルツールでも同じ事が出来ると思います)、線の太さが1ピクセルだとImageJで境界線として認識されません。必ず2ピクセル以上の太さが必要です。2ピクセル以上の太さの閉じた境界線を描いておけば、境界線の内側の面積を求めるのにMake BinaryやFind Edgesをする必要は全くありません。

面積を求めたい画像を開いた状態でImage/Adjust/Thresholdを呼び出して、境界線が黒く、面積を求めたい領域が赤くなるようにスライドバーを動かします。8bitの画像で境界線のグレーバリューが0なら、1-255が赤くなるように、境界線のグレーバリューが255なら、0-254が赤くなるようにしておくと確実です。
その後はThresholdのウィンドウはそのままにして、面積を求めたい画像のウィンドウをアクティブにし、Analyze Particlesを実行して下さい。Set Measurementsの設定がデフォルトのままなら、それぞれの領域の面積と、グレーバリューの平均値、最大値、最小値などが測定できるはずです。
Analyze Particlesのスケールの設定によっては境界線の外側全てが1つのParticleと認識されたり、面積の小さい細胞が測定されなかったりするので、スケールの値を適宜変更したり、Show NothingからShow Outlinesに変更してどこがParticleとして測定されたかを確認しておくと良いでしょう。

このやり方では、Image/Adjust/Thresholdをいじらないと境界線自体の面積を求めてしまうので、くっ付いた境界線は一つのParticleと認識されてしまいます。境界線がくっ付いている場合はParticleの数が少なくなるので気づきやすいですが、境界線が離れていると気づかない可能性もあります。Flood Fillツールで細胞外を境界線と同じ色で塗りつぶしてしまえば問題なさそうですが、うっかり間違えないようにくれぐれもご注意を。

どうすればImageJで不明瞭な細胞の境界を識別させられるかはわからないので、境界線を手でなぞる場合について書いてみます。

Photoshopのペンツールで細胞の輪郭をなぞる時(ImageJのペンシルツールでも同じ事が出来ると思います)、線の太さが1ピクセルだとImageJで境界線として認識されません。必ず2ピクセル以上の太さが必要です。2ピクセル以上の太さの閉じた境界線を描いておけば、境界線の内側の面積を求めるのにMake BinaryやFind Edgesをする必要は全くありません。

面積を求めたい画像を開いた状態...続きを読む

QImageJを使ったFFTについて

フリーソフトのImageJを使って、画像をFFTします。
このとき、FFTのoptionでパワースペクトルも同時に表示することができるのですが、結果として出てくるFFT後の画像とパワースペクトルの二つの画像の違いは何なのでしょうか?

FFT後の画像とパワースペクトルの数値データを見たのですが大きさが違うように見えるだけで、どのような意味があるのかがさっぱり分かりませんでした。

FFTの原理もあまり理解できていないので、ネットで調べてみてもイマイチよく分かりませんでしたので質問させていただきました。

どうかよろしくお願いします。

Aベストアンサー

#3です。
FHT(高速ハートレー変換)というのをちょっと調べてみると、フーリエ変換と同じようなことを実数だけでやるというものだそうです。結果をちょっと細工するとフーリエ変換と同じ結果になるので、持っている情報量は同じ。原画が再生される。そして、FHTから求めるパワースペクトルはフーリエ変換から求められるパワースペクトルと同じようです。

先に示したURLによれば、FFTの結果(実はFHT)として見せている画像はパワースペクトルを見せているということなので、「結果として出てくるFFT後の画像とパワースペクトルの二つの画像」は結局のところ同じものではないのでしょうか。

数値以前に、明るい画素は明るい、暗い画素は暗い、と画素毎に確実な対応関係が確認できれば、両者同じもの、見せ方が違うだけ、という結論でよさそうに思われますが。


「結果として出てくるFFT後の画像とパワースペクトルの二つの画像」と数値が対応しないということですが、対応しないのは次のどちらかではないでしょうか。
第一に、FFT結果として、見せている画像とは別に保持しているフーリエ変換結果の数値がある、と先に示したURLでは書かれているはずですが、違いますか?ここ大事。
すると、Text Imageで保存されるのは「見せている画像」と「それとは別に保持しているフーリエ変換結果の数値」と、どっちですか?前者「見せている画像」ではありませんか?それだと比べようもないかもしれませんよね。見せている画像というのは絶対値化とか自乗とかしただけでなく、適当なスケーリングをしているかもしれないし、表示ダイナミックレンジ圧縮のために対数化しているかもしれないのですから。そのような画素値がText Imageで保存されるのではないですか?ご確認ください。
第二に、ext Imageで保存されるのは「別に保持しているフーリエ変換結果の数値」だとしても、それはFFT結果とかいいつつも実はFHTの結果であり、別の値になります。FHTの結果を振幅自乗してもパワーにはなりません。FHT結果からFFT結果に焼き直すには細工が要ります。

結局、FFTといいつつFHTなるものを中で使っているということは、結果として見せるのは同じパワースペクトルであるからこそ、中身の保存値はFFTじゃなくFHT結果で構わない、ということなんではないでしょうか?

#3です。
FHT(高速ハートレー変換)というのをちょっと調べてみると、フーリエ変換と同じようなことを実数だけでやるというものだそうです。結果をちょっと細工するとフーリエ変換と同じ結果になるので、持っている情報量は同じ。原画が再生される。そして、FHTから求めるパワースペクトルはフーリエ変換から求められるパワースペクトルと同じようです。

先に示したURLによれば、FFTの結果(実はFHT)として見せている画像はパワースペクトルを見せているということなので、「結果として出...続きを読む

Qエクセル STDEVとSTDEVPの違い

エクセルの統計関数で標準偏差を求める時、STDEVとSTDEVPがあります。両者の違いが良くわかりません。
宜しかったら、恐縮ですが、以下の具体例で、『噛み砕いて』教えて下さい。
(例)
セルA1~A13に1~13の数字を入力、平均値=7、STDEVでは3.89444、STDEVPでは3.741657となります。
また、平均値7と各数字の差を取り、それを2乗し、総和を取る(182)、これをデータの個数13で割る(14)、この平方根を取ると3.741657となります。
では、STDEVとSTDEVPの違いは何なのでしょうか?統計のことは疎く、お手数ですが、サルにもわかるようご教授頂きたく、お願い致します。

Aベストアンサー

データが母集団そのものからとったか、標本データかで違います。また母集団そのものだったとしても(例えばクラス全員というような)、その背景にさらならる母集団(例えば学年全体)を想定して比較するような時もありますので、その場合は標本となります。
で標本データの時はSTDEVを使って、母集団の時はSTDEVPをつかうことになります。
公式の違いは分母がn-1(STDEV)かn(STDEVP)かの違いしかありません。まぁ感覚的に理解するなら、分母がn-1になるということはそれだけ結果が大きくなるわけで、つまりそれだけのりしろを多くもって推測に当たるというようなことになります。
AとBの違いがあるかないかという推測をする時、通常は標本同士の検証になるわけですので、偏差を余裕をもってわざとちょっと大きめに見るということで、それだけ確証の度合いを上げるというわけです。

QImageJ を使った色の数値化

現在、試薬を与えると植物根の色が変色するという実験をおこなっています。

処理後の植物根を顕微鏡で観察し、デジカメで撮影をおこないました。
写真を見ると植物Aの根とBの根では明らかに色の強さに違いがありました。

そこで、色の違いを客観的に判断するために、色の強さを数値化したいと考えています。

今わたしのパソコンにはImageJというソフトがあるのですが、このソフトを使って、
指定した範囲の色の強さを数値化することは可能でしょうか?

Aベストアンサー

範囲指定後にAnalyze>Measureで表示されるMean Gray Valueというのが指定された範囲内のシグナル強度の平均値だったと思います。RGB画像ならImage>Type>RGB StackとやればRGBそれぞれの強度も出せるはず。

ImageJのマニュアルを日本語化して下さっているサイトを載せておきますので、調べてみて下さい。

参考URL:http://www.hm6.aitai.ne.jp/~maxcat/imageJ/imageJ-help.htm

QimageJによる画像スタッキングの問題

imageJで,100枚程度のtiff画像(X線CTによるスライス画像)をスタッキングしようとした際,その順番が若干おかしくなります.
こういう順序はどのように決まっているのでしょうか?また,順番を変えるにはどうしたらよいのでしょうか?
ご助言いただければ幸いです.

Aベストアンサー

情報が少ないので合っているか分かりませんが、ファイルの順番が狂う状況の1つに次のようなものがあります。

ファイル名に連番を付ける
file1 file2 file3 file4 ... file10 file11 file12 ... file100
辞書式順序に並べる
file1 file10 file100 file11 ...file19 file2 file20 file21 ... file99

WindowsXP(と多分Vistaも)のエクスプローラでは連番を認識して数の順に並べてくれるのですが、普通のソフトはそこまでやってくれないことがほとんどです。
これを防ぐためには連番の頭を0を埋めて桁数を揃えることです。
file001 file002 file003 ... file100
のように。
大抵のリネームソフトでリネーム可能です。

Q開発環境でImageJのマクロを動かす方法

お世話になります。

現在、C#(2005)にて画像解析のGUIアプリケーションを作成しているのですが、

画像解析でおなじみのフリーソフト「Image-J」の1部の機能をC#上で動かしたく、
奮闘しているのですがやり方がわからず困っています。

具体的なイメージとしては・・・

(1) C#アプリでTIF画像を表示。

(2) ImageJのプラグイン(※)を作成( 例:画像を2値化するプラグインなど )
  (※) 作成されたプラグインの中身は、Javaのコードです(○○.java)
 
(3) アプリのC#上のソース内で、(2)のプラグインを取り込んで機能化し、TIF画像を2値化できるようにする。

最終的には、「Image-J」 の色々な機能を取り込みたいと考えています。
( 全ての機能を自作するのは大変だからという理由でImaga-Jの機能を取り込む事になっています )

どんな小さな情報でもかまいません。( 環境がC# でなく、C++ や Javaでならやった事あるなどども良いです )
Image-Jのマクロや、プラグインを別の開発環境で動くようにした事がある方がいらっしゃいましたら、
ご教授の程、よろしくお願いいたします。

お世話になります。

現在、C#(2005)にて画像解析のGUIアプリケーションを作成しているのですが、

画像解析でおなじみのフリーソフト「Image-J」の1部の機能をC#上で動かしたく、
奮闘しているのですがやり方がわからず困っています。

具体的なイメージとしては・・・

(1) C#アプリでTIF画像を表示。

(2) ImageJのプラグイン(※)を作成( 例:画像を2値化するプラグインなど )
  (※) 作成されたプラグインの中身は、Javaのコードです(○○.java)
 
(3) アプリのC#上のソース内で、(2)のプラグインを取り込んで...続きを読む

Aベストアンサー

ご存知の通り、ImageJはJavaで記述されています。

なので、そのまま使うつもりなら、Javaで作るのが一番楽だと思います。
C#でもC++でも、Javaとのデータのやりとりはいろいろと面倒ですから。

または、ImageJのソースは公開されているので、C#に移植した方が早いかもしれません。
特に、プラグインはそう複雑ではないですから、C#-Javaのやりとりを考えているより早いのでは。

あるいは、C#用の画像処理ライブラリを使うとか(OpenCVSharp等)

QImageJを用いて免疫染色陽性率の計算の仕方

Ki67の免疫染色の陽性率を、このソフトを用いて解析ができるという話を聞いたのですが、まったく使いたかが分かりません。
ヘマトキシリンの青の部分と、免疫染色の茶の部分をわければ解析ができるのでしょうか?
どうか使用方法を教えていただけると幸いです。

Aベストアンサー

色を分離しなくても Cell Counter プラグインを使えば数えられますが、手作業なので少し時間はかかりそうです。

imageJで細胞数等を数えるCell Counter|LifeScienceProject
http://life-science-project.com/1005/


染色されている部分と背景がくっきり分かれている画像であれば、もう少し楽なやり方ができます。
まずヘマトキシリンと免疫染色(DAB?)を分離するために Colour Deconvolution プラグインを使います。

Colour Deconvolution
http://www.dentistry.bham.ac.uk/landinig/software/cdeconv/cdeconv.html

プラグインのインストールは、上記のページの "java and class fils" をダウンロードして解凍し、ImageJ フォルダの中の plugins フォルダに入れて ImageJ を起動させれば良いはずです。
ImageJ で解析したい画像を開いて Plugins メニューから Colour Deconvolution を選択し、Vectors で "H DAB" を選んで OK を押します。
このプラグインで色を分けた後、ヘマトキシリンと免疫染色(DAB?)の画像を Analyze Particles で解析して染色された核の数をカウントすれば OK です。

ImageJの日本語訳~Analyze~
http://www.hm6.aitai.ne.jp/~maxcat/imageJ/menus/analyze.html#AP

色を分離しなくても Cell Counter プラグインを使えば数えられますが、手作業なので少し時間はかかりそうです。

imageJで細胞数等を数えるCell Counter|LifeScienceProject
http://life-science-project.com/1005/


染色されている部分と背景がくっきり分かれている画像であれば、もう少し楽なやり方ができます。
まずヘマトキシリンと免疫染色(DAB?)を分離するために Colour Deconvolution プラグインを使います。

Colour Deconvolution
http://www.dentistry.bham.ac.uk/landinig/software/cdeconv/cdecon...続きを読む

QPowerPointに貼り付けた画像の解像度について

PowerPointに挿入した画像の解像度についてお聞きします。バージョンは、2000またはXPについて想定しています。

通常の方法で、jpgなどの画像を「挿入」「図」「ファイルから」で挿入します。挿入後、その画像を編集したい場合、この画像を選択しコピー、PhotoShopなどに貼り付けを行うと、72dpiに変更されています。

質問1.画像によっては、左ダブルクリックで、PhotoShopが起動します。どこかで設定した記憶は無いのですが、何をもって、PhotoShopが起動するのか、あるいは、オブジェクトの書式設定の画面がでるのか、基準が不明です。教えてください。なお、この場合でもPhotoShopでの解像度は72dpiに変更されています。

質問2.コピー、貼り付けによる方法は上述のように、72dpiに解像度が変更されますが、実際に、紙などにプリントすると、72dpiではないように思います。つまり、オリジナルの解像度を保持しているように思います。何らかの方法で、この解像度を保持したまま、PhotoShopで画像編集することは可能でしょうか?いったん、PDFなどに変更する方法は確かにうまくいくことは確認していますが、たくさんあるので、お聞きします。

高解像度の画像をたくさん貼り付けると、ファイルのサイズが大きくなることから、PowerPoint内での解像度はオリジナルのままではないかと想像します。いったん、貼り付けた画像をもとのままの解像度で編集しなおしたいというのが、最終的な希望なのですが、何かよい方法はないでしょうか。

よろしくお願いします。

PowerPointに挿入した画像の解像度についてお聞きします。バージョンは、2000またはXPについて想定しています。

通常の方法で、jpgなどの画像を「挿入」「図」「ファイルから」で挿入します。挿入後、その画像を編集したい場合、この画像を選択しコピー、PhotoShopなどに貼り付けを行うと、72dpiに変更されています。

質問1.画像によっては、左ダブルクリックで、PhotoShopが起動します。どこかで設定した記憶は無いのですが、何をもって、PhotoShopが起動するのか、あるいは、オブジェクトの書式設定の画面...続きを読む

Aベストアンサー

質問1に関して。。。。
「挿入」→「図」またはコピペで貼ったものは、たぶんoffice依存オブジェクトに変換されてしまいますが、「挿入」→「オブジェクト」で貼った場合、元のクリエータ依存のままで貼れるかとおもいます。その場合、ダブルクリックするとそのエディタが開くものと思われます。

質問2に関して。。。
上記方法のように「挿入」→「オブジェクト」で貼り付けるとたぶん、解像度も含めてオリジナルに変更を加えないまま貼りつくと思います。ただし、#1の方がおっしゃってるように重くなりますので、よほどハイパワーのマシンがない限りあまりおすすめ致しません。
ちなみに、コピペするとやはりプリントクォリティは下がりますよ、うちでは。ビットマップデータだと気にならないかもしれませんが、ベクトルデータだとてきめんわかります。印刷精度を優先したいなら「挿入」で「図」もしくは「オブジェクト」で貼り込むことをおすすめします。たとえ「図」で貼っても、コピペするよりはかなりマシです。

ハズしてたらすみません。
ご参考になれば幸いです。

Q文字列として"(ダブルコーテーション)を表示させる方法

こんにちは。文字列として、ダブルコーテーションを表示させるには、どうすればよいのか教えてください。m(__)m


例えば、
<font size="2">あいうえお</font>

というタグの「あいうえお」の部分が、セルA1にあった場合、

="<font size="2">"&A1&"</font>"という表示にしたいのです。

"2"のダブルコーテーションも文字列として表示させるには、どうすればよろしいのでしょうか。

教えてください。よろしくお願い致します。

Aベストアンサー

こんにちは~

表示形式は 「標準」 のままで、
ダブルコーテーションを、ダブルコーテーションで囲んでください。

""2""

="<font size=""2"">"&A1&"</font>"

としてみてください。

Q論文における in vitro、in vivo の記載の仕方(大文字、小文字、イタリック体など)について。

日本語での論文を書いておりますが、in vitro、in vivoと言う言葉の記載の仕方について教えていただければと思います。

1.in vivo、in vitro は常に小文字でよいのでしょうか? 文頭においても小文字でいいのでしょうか?
2.イタリック体にするのでしょうか?

私は、文頭でも常に小文字で、イタリック体が基本だと思っておりました。しかし、いろんな報告をみると、イタリック体でないものも多くみられますし、文頭でIn vitroと大文字にしてる方、文中でもIn VitroとVも大文字の方なども見られます。他にはin-vitroとハイフンを付けてる方など。企業等のパンフレットでも、小文字で始まるのが若干多い気もしますが、まちまちでした。

自分で調べましたところ、
http://www.safe.nite.go.jp/risk/files/manual_ver2_20070115.pdf
の101ページ目や、
http://www.nifsmbc.co.jp/nifsmbc_news/pdf/news04_04.pdf
の4ページ目には、イタリック体で、文頭でも小文字にすると記載されておりました。
しかし、投稿規定などでは、イタリックにしないや、文頭は大文字にするという様なことが書かれているのもありました。

実際問題として、一般的にはどうなんでしょうか? こだわるほどのことではなくて、どれでも間違いではないのでしょうか?私としてはイタリック体で文頭でも小文字がなんとなくしっくりするような気がするのですが・・・。
ちなみに今書いているのは博士論文でして、特にそこまでの投稿規程は指定されておりません。
みなさまのご意見よろしくお願い致します。

日本語での論文を書いておりますが、in vitro、in vivoと言う言葉の記載の仕方について教えていただければと思います。

1.in vivo、in vitro は常に小文字でよいのでしょうか? 文頭においても小文字でいいのでしょうか?
2.イタリック体にするのでしょうか?

私は、文頭でも常に小文字で、イタリック体が基本だと思っておりました。しかし、いろんな報告をみると、イタリック体でないものも多くみられますし、文頭でIn vitroと大文字にしてる方、文中でもIn VitroとVも大文字の方なども見られます。...続きを読む

Aベストアンサー

英文雑誌の投稿規程でも完全には統一されていないので、回答としては「どちらでもよい」だと思います。

外来語であればイタリックで文頭でも小文字にするのが正解だと思いますが、in vivo、in vitro、et al.などは既に英語として定着しており、イタリックにする必要は無く、文頭に来た場合は大文字にするという規定を採用している雑誌が多くなって来ている気がします。

特に規定がないのであれば、よく読まれる雑誌、投稿する予定のある雑誌などの投稿規定を参考にして書かれるとよいのではないでしょうか?
いずれにせよ、同一論文中では最後まで統一することが重要です。


人気Q&Aランキング