- 締切済み
MATLABのプログラミングについてご質問です(3)
MATLAB初心者です。 いつもお世話になります。 現在、以下の環境を使っています。 ------------------------------- OS:Windows XP MATLABのバージョン:R2007a ------------------------------- 以下の内容をプログラムでどう組み込めばよいのか分らないため、質問させて頂きました。 詳しい方、ご教授のほどお願いします。 (1)カレントディレクトリ内のフォルダ(hoge)の中に「JPEGファイル」が何個あるかをカウントする方法 (2)MATLABの guide のプロパティ インスペクターの中に文字の水平位置(left, center, right)を設定する 「HorizontalAlignment」があると思います。 垂直位置を設定する箇所ってどこかにあるのでしょうか? あれば、教えて頂きたいです。 (3)2つの画像ファイル「A.tif」「B.tif」を合成(論理和)して「C.tif」を出力する事って可能なのでしょうか? 色々と試してみましたが、今の自分の力量では無理でした。もし可能であれば、やり方を教えて頂きたいです。 全てでなくても、判る範囲までのご回答でもかまいません。 よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- Kules
- ベストアンサー率47% (292/619)
三度Kulesです。 (1)これ意外とめんどくさいですね…もっといい方法があると思うのですが私には これぐらいしか思いつきませんでした。 FolderName=pwd;%カレントディレクトリを指定、自分で指定したければuigetdirを使用 List=dir(FolderName);%カレントディレクトリ内のファイルのリストを取得 NumofJpeg=0; for k=1:length(List); if ~isempty(strfind(lower(List(k).name)'.jpg'));%リスト内のファイル名に.jpgがあるか検索 NumofJpeg=NumofJpeg+1; end; end; if文にlowerを付けているのはたまに「.JPG」があるからですね…ファイル名の途中に「.jpg」がついてる別のファイルなどのことは考えていません。そこまでしようとするとif文のところを FileName=List(k).name; if ~isempty((strfind('.jpg',lower(FileName(end-3:end)))); にすればできるような…そこまで試してないのでわかりませんが。 (2)私も気になってちょっと調べてみましたが、どうやらなさそうです。 (3)論理和ということはそれぞれの画像は0か1の値ということでしょうか? 画像の読み込み、書き出しの部分はいいですよね? A.tif、B.tifのデータをそれぞれA,Bとして、 C=A+B; C(C>1)=1; でいいと思います。 以上、参考になれば幸いです。