• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Octaveでlibsvmを使った画像認識をしたい)

Octaveでlibsvmを使った画像認識をしたい

このQ&Aのポイント
  • Octaveでlibsvmを使って画像認識をしたいが、imread()関数が使えないエラーが発生している。
  • 古いバージョンのOctaveではimread()関数が使えるが、libsvmが使えなくなってしまった。
  • Octaveのバージョンアップによってimread()関数が使えなくなる変更があったが、それを修正する方法が分からない。

質問者が選んだベストアンサー

  • ベストアンサー
  • ki073
  • ベストアンサー率77% (491/634)
回答No.7

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/octave/3.8.0/lib/octave/3.8.0:/usr/local/octave/3.8.0/lib/libgcc についてはどうも効果がないようです。 Octave-cliはターミナルを使っていますが、環境変数はどうも引き継がなさそうです。害はないように思いますが、元に戻してください。 3.8.2でコンパイルしたものは3.8.2のライブラリを必要とするので(otoolで表示されている) それを残しておく必要があります。 3.8.2を消してしまっていたら次の方法を試してみてください。 cd /usr/local/octave sudo ln -s 3.8.0 3.8.2 これで3.8.2のライブラリを使ってくれると思いますが、バージョンの差を吸収できるかはわかりません。 それがダメなら、 3.8.2をインストールして、/usr/local/octave/3.8.2以下をどこかに移動(mvコマンドで可能)して、 3.8.0をインストールして、3.8.2を元の位置に戻すという方法です。 こちらで、10.9で両方のバージョンを重ねてインストールすると、 GraphicsMagickは片方にしか入っていなかったり、片方のライブラリがかなり不足した状態でできていました。 以上確認はできていませんが、動くような気がします。 ここまでするのならRなどに書き換えたほうが将来的によいような気もしますが、

chosukej
質問者

お礼

解決策は「別の環境で実行する」ということで落ち着きました。

chosukej
質問者

補足

-> 3.8.2をインストールして、/usr/local/octave/3.8.2以下をどこかに移動(mvコマンドで可能)して、 3.8.0をインストールして、3.8.2を元の位置に戻すという方法です。 試してみました。すると, octave:3> z = [1; -1; -1; 1]; octave:4> X = [0, 0; 0, 1; 1, 0; 1, 1;]; octave:5> model = svmtrain(z, X); * optimization finished, #iter = 2 nu = 1.000000 obj = -3.690364, rho = 0.000000 nSV = 4, nBSV = 4 Total nSV = 4 octave-cli-3.8.0(1823,0x7fff7307e300) malloc: *** error for object 0x10c2d4270: pointer being freed was not allocated *** set a breakpoint in malloc_error_break to debug panic: Abort trap: 6 -- stopping myself... attempting to save variables to 'octave-workspace'... save to 'octave-workspace' complete Abort trap: 6 logout [プロセスが完了しました] 結果は出ました!が,エラーがでます。 これだと学習はできても,識別器として使えません。。。 この種のエラーであれば,何とかなりそうでしょうか?

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (7)

  • ki073
  • ベストアンサー率77% (491/634)
回答No.8

無理みたいですね。このエラーはちょっと厄介です。 最初に書いた方法はどうですか? lnを使う方法です。 10.9でですが、MacPortsを使ってOctaveをインストールでき正常に動作しました。 元のままではエラーが出ていたので、次の様にしましした。 /opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/math にoctaveというフォルダがあります。それをフォルダごと適当なところにコピーします。 その中に、Portfileというファイルがあります。 revision 7 を revision 7a に、これは元のものと区別するためです。 --enable-docs \ を --disable-docs \ に、docを作るときにエラーが出ていたのでそれを回避するためです。 後はcdで変更したoctaveフォルダの外になるようにして sudo port install ./octave で正常に動きました。 octave-cliのアイコンが出来ていませんでしたので、コマンドで入れる必要がありました。

chosukej
質問者

お礼

再び時間が空いてしまいました。 今まで,いろいろなことを試しても だめだったので,Octaveは諦めました。 ご助言のように,別の環境で行うことにしました。 Rではなく,Pythonですが,細かな設定は少しあったものの, 環境のインストール 画像の読み込み libsvmの使用 は全てできました。 結局,Octaveでの実行はできませんでしたが, この2週間ほど,いろいろ考えてくださってありがとうございます。 少し,前進しましたm(_ _)m

全文を見る
すると、全ての回答が全文表示されます。
  • ki073
  • ベストアンサー率77% (491/634)
回答No.6

訂正 >最後の方に ではなくexportが書かれているところですね。最後だとopen命令が実行された後になりますね。 gccのバージョンが違うのでちょっと厳しいかな。

chosukej
質問者

補足

少し日が空きました。 おっしゃるのは, 3.8.2でimreadを使えるようにするのは難しそうなので, 3.8.0をベースにして,libsvmを使えるようにする方針でしょうか。 以下試したことです。 3.8.2でmakeは上手くいくようなので, まず,libsvmは3.8.2でmakeし,ダイナミックライブラリを確認すると 'USER'-MacBook-Pro:matlab 'username'$ otool -L svmtrain.mex svmtrain.mex: /usr/local/octave/3.8.2/lib/octave/3.8.2/liboctinterp.2.dylib (compatibility version 3.0.0, current version 3.0.0) /usr/local/octave/3.8.2/lib/octave/3.8.2/liboctave.2.dylib (compatibility version 3.0.0, current version 3.0.0) /usr/local/octave/3.8.2/lib/libgcc/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.20.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1213.0.0) /usr/local/octave/3.8.2/lib/libgcc/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0) となりました。 続いて,3.8.0をインストールし,3.8.0のターミナルから以下のテストを実行。 octave:3> z = [1; -1; -1; 1]; octave:4> X = [0, 0; 0, 1; 1, 0; 1, 1;]; octave:5> model = svmtrain(z, X); error: /Users/'username'/Desktop/libsvm-3.20/matlab/svmtrain.mex: failed to load: dlopen(/Users/'username'/Desktop/libsvm-3.20/matlab/svmtrain.mex, 2): Library not loaded: /usr/local/octave/3.8.2/lib/octave/3.8.2/liboctinterp.2.dylib Referenced from: /Users/'username'/Desktop/libsvm-3.20/matlab/svmtrain.mex Reason: image not found エラーがでます。 それから,Octave.cli(3.8.0)のOctaveに,2行目を追加しました。 1行目 export PATH=/usr/local/octave/3.8.0/bin:/usr/local/octave/3.8.0/sbin:${PATH} 2行目 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/octave/3.8.0/lib/octave/3.8.0:/usr/local/octave/3.8.0/lib/libgcc 3行目 export GNUTERM=qt 4行目 cd $OCTAVE_HOME 5行目 open -a Terminal.app /usr/local/octave/3.8.0/bin/octave | logger 2>&1 そして,3.8.0を再起動し,同じテストを実行。 同じエラーがでます。 さらに,3.8.2を消して,もう一度同じことを実行。 同じエラーがでます。 これで,おっしゃる方法は試したことになっているでしょうか?

全文を見る
すると、全ての回答が全文表示されます。
  • ki073
  • ベストアンサー率77% (491/634)
回答No.5

OSX 10.10.3が入ったので試してみました。 結局は3.8.0ではimreadは大丈夫ですが、makeはだめ、3.8.2ではimreadもだめ、makeも一部だめでした。 よい解決方法は無さそうですが OSX10.9でmakeしたsvmtrain.mexはそのままで10.10で使えましたので、もしmake可能はバージョンで作ったものがあればコピーして使えると思います。 3.8.2でmakeできるのでしたら、もしかしたら.mexファイルだけを移しても使えるかもしれません。こちらでは確認できませんのでそんな気がするだけです。 ただし、3.8.2で作ったものは3.8.2内部のライブラリを使っていますので、必要なものを残しておく必要があります。共存可能な状態であれば動くかも知れません。 別の方法として、同じく3.8.2で作ったものですが、3.8.0内部のライブラリを使ってもらうように変更することも出来るかもしれません。この場合は、3.8.2を消してしまって、 Octave.cliを右クリックでパッケージを開いて、中の方にOctaveというファイルがあります。テキストファイルですので CotEditorなどのテキストエディタで開いて、最後の方に export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/octave/3.8.0/lib/octave/3.8.0:/usr/local/octave/3.8.0/lib/libgcc と一行追加してみてください。 確証が持てませんが、うまくいく可能性もあります。 参考 ターミナルで使っているダイナミックライブラリを確認できます。 otool -L svmtrain.mex とすると svmtrain.mex: /usr/local/octave/3.8.0/lib/octave/3.8.0/liboctinterp.2.dylib (compatibility version 3.0.0, current version 3.0.0) /usr/local/octave/3.8.0/lib/octave/3.8.0/liboctave.2.dylib (compatibility version 3.0.0, current version 3.0.0) /usr/local/octave/3.8.0/lib/libgcc/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.18.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1) /usr/local/octave/3.8.0/lib/libgcc/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0) のように出力されます。3.8.2で作った場合には3.8.2になりますので、ダマしてしまおうというものです。

全文を見る
すると、全ての回答が全文表示されます。
  • ki073
  • ベストアンサー率77% (491/634)
回答No.4

追加ですが Octaveの3.8.2と3.8.0は両方インストールしたら駄目ですよ。 不完全なものになってしまいます。両方完全に消して(/usr/localの中身も)、その後で3.8.0だけをインストールしてください。

chosukej
質問者

補足

それは大丈夫です。3.8.0だけのインストールは,試行錯誤の過程でやりました。 一応,もう一度やってみましたが,やはり両方インストールされている場合と同じエラーが出ます。 実は,mkoctfileを3.8.2のものと置き換えたり,また,それによって生じるエラーの原因のファイルを置き換えたりみたりもしてみました(あまりやってはいけないことと思いますが)。ですが,それもうまくいかないようです。

全文を見る
すると、全ての回答が全文表示されます。
  • ki073
  • ベストアンサー率77% (491/634)
回答No.3

http://www.csie.ntu.edu.tw/~cjlin/libsvm/ のtar.gzファイルを使っていますが、たぶん同じものですよね。 原因を切り分けたいと思います。 makeの代わりに mex svmtrain.c ../svm.cpp svm_model_matlab.c とすればどうなりますか? また mex libsvmread.c mex libsvmwrite.c mex svmpredict.c ../svm.cpp svm_model_matlab.c はどうでしょうか? 結局は.mexのファイルがあればなんとかなるのですが。

chosukej
質問者

補足

はい。tar.gzをダウンロードしています。 makeの代わりにmexとした場合, octave:3> mex svmtrain.c ../svm.cpp svm_model_matlab.c /usr/local/octave/3.8.0/bin/mkoctfile-3.8.0: line 479: 1619 Segmentation fault: 11 /usr/local/octave/3.8.0/bin/gcc-mp-4.7 -c -fPIC -I/usr/local/octave/3.8.0/include/octave-3.8.0/octave/.. -I/usr/local/octave/3.8.0/include/octave-3.8.0/octave -I/usr/local/octave/3.8.0/include -pipe -Os -m64 -D_THREAD_SAFE -pthread -I. svmtrain.c -o svmtrain.o warning: mkoctfile exited with failure status octave:4> mex libsvmread.c /usr/local/octave/3.8.0/bin/mkoctfile-3.8.0: line 479: 1631 Segmentation fault: 11 /usr/local/octave/3.8.0/bin/gcc-mp-4.7 -c -fPIC -I/usr/local/octave/3.8.0/include/octave-3.8.0/octave/.. -I/usr/local/octave/3.8.0/include/octave-3.8.0/octave -I/usr/local/octave/3.8.0/include -pipe -Os -m64 -D_THREAD_SAFE -pthread -I. libsvmread.c -o libsvmread.o warning: mkoctfile exited with failure status octave:5> mex libsvmwrite.c /usr/local/octave/3.8.0/bin/mkoctfile-3.8.0: line 479: 1640 Segmentation fault: 11 /usr/local/octave/3.8.0/bin/gcc-mp-4.7 -c -fPIC -I/usr/local/octave/3.8.0/include/octave-3.8.0/octave/.. -I/usr/local/octave/3.8.0/include/octave-3.8.0/octave -I/usr/local/octave/3.8.0/include -pipe -Os -m64 -D_THREAD_SAFE -pthread -I. libsvmwrite.c -o libsvmwrite.o warning: mkoctfile exited with failure status octave:6> mex svmpredict.c ../svm.cpp svm_model_matlab.c /usr/local/octave/3.8.0/bin/mkoctfile-3.8.0: line 479: 1651 Segmentation fault: 11 /usr/local/octave/3.8.0/bin/gcc-mp-4.7 -c -fPIC -I/usr/local/octave/3.8.0/include/octave-3.8.0/octave/.. -I/usr/local/octave/3.8.0/include/octave-3.8.0/octave -I/usr/local/octave/3.8.0/include -pipe -Os -m64 -D_THREAD_SAFE -pthread -I. svmpredict.c -o svmpredict.o warning: mkoctfile exited with failure status octave:7> となります。

全文を見る
すると、全ての回答が全文表示されます。
  • ki073
  • ベストアンサー率77% (491/634)
回答No.2

Octave 3.8.2で試したらimreadがやはり駄目ですね。 GraphicMagickは入っているので、あまり深入りしないようにしました。 次に3.8.0にしました。質問欄のリンクのものです。 > make > z = [1; -1; -1; 1]; > X = [0, 0; 0, 1; 1, 0; 1, 1;]; > model = svmtrain(z, X); とやっても補足欄のような結果になりますが、どこでエラーが出ますか? 中に入っているgccが3.8.0で4.7, 3.8.2で4.9になっています。この程度で差がある様には思えませんが。 ちなみにこちらはOSX 10.9.5です。

chosukej
質問者

補足

そちらでは,Octave3.8.0でlibsvmが動くようですね、、、 こちらのOctave3.8.0での実行結果を以下のとおりです。 octave:1> cd /Users/'username'/Desktop/libsvm-3.20/matlab octave:2> make /usr/local/octave/3.8.0/bin/mkoctfile-3.8.0: line 479: 936 Segmentation fault: 11 /usr/local/octave/3.8.0/bin/gcc-mp-4.7 -c -fPIC -I/usr/local/octave/3.8.0/include/octave-3.8.0/octave/.. -I/usr/local/octave/3.8.0/include/octave-3.8.0/octave -I/usr/local/octave/3.8.0/include -pipe -Os -m64 -D_THREAD_SAFE -pthread -I. libsvmread.c -o libsvmread.o warning: mkoctfile exited with failure status /usr/local/octave/3.8.0/bin/mkoctfile-3.8.0: line 479: 946 Segmentation fault: 11 /usr/local/octave/3.8.0/bin/gcc-mp-4.7 -c -fPIC -I/usr/local/octave/3.8.0/include/octave-3.8.0/octave/.. -I/usr/local/octave/3.8.0/include/octave-3.8.0/octave -I/usr/local/octave/3.8.0/include -pipe -Os -m64 -D_THREAD_SAFE -pthread -I. libsvmwrite.c -o libsvmwrite.o warning: mkoctfile exited with failure status /usr/local/octave/3.8.0/bin/mkoctfile-3.8.0: line 479: 955 Segmentation fault: 11 /usr/local/octave/3.8.0/bin/gcc-mp-4.7 -c -fPIC -I/usr/local/octave/3.8.0/include/octave-3.8.0/octave/.. -I/usr/local/octave/3.8.0/include/octave-3.8.0/octave -I/usr/local/octave/3.8.0/include -pipe -Os -m64 -D_THREAD_SAFE -pthread -I. svmtrain.c -o svmtrain.o warning: mkoctfile exited with failure status /usr/local/octave/3.8.0/bin/mkoctfile-3.8.0: line 479: 964 Segmentation fault: 11 /usr/local/octave/3.8.0/bin/gcc-mp-4.7 -c -fPIC -I/usr/local/octave/3.8.0/include/octave-3.8.0/octave/.. -I/usr/local/octave/3.8.0/include/octave-3.8.0/octave -I/usr/local/octave/3.8.0/include -pipe -Os -m64 -D_THREAD_SAFE -pthread -I. svmpredict.c -o svmpredict.o warning: mkoctfile exited with failure status octave:3> z = [1; -1; -1; 1]; octave:4> X = [0, 0; 0, 1; 1, 0; 1, 1;]; octave:5> model = svmtrain(z, X); error: /Users/'username'/Desktop/libsvm-3.20/matlab/svmtrain.mex: failed to load: dlopen(/Users/'username'/Desktop/libsvm-3.20/matlab/svmtrain.mex, 2): Library not loaded: /usr/local/octave/3.8.2/lib/octave/3.8.2/liboctinterp.2.dylib Referenced from: /Users/'username'/Desktop/libsvm-3.20/matlab/svmtrain.mex Reason: image not found octave:5> cd /Users/'username'/Desktop/image_folder octave:6> img = imread('IMG.jpg'); octave:7> このエラーから,何か思い当たる節があるでしょうか? ※補足(試してダメだったこと) 私は,makeが失敗しているように思いました。 'warning: mkoctfile exited with failure status' のエラー文をgoogleで検索したところ, 'octaveでmexファイルを作成 - 禁漁の金魚の金色の岐路の業' http://d.hatena.ne.jp/LCRTB/20130212/1360654579 の記事があったので,記事と同じように'octave-headers'を入れればよいのかと思い, 以下のコマンドを実行しました。 'USER'-MacBook-Pro:~ 'username'$ brew install octave-headers Error: No available formula for octave-headers Searching formulae... Searching taps... が,見つからず,これはここで諦めました。

全文を見る
すると、全ての回答が全文表示されます。
  • ki073
  • ベストアンサー率77% (491/634)
回答No.1

外部のライブラリを使う場合には普通次の様にします。(Octaveも多分そうだと思いますが一般的にはです) 1. 外部のライブラリ(ここではlibsvmに相当する)を適当な方法でインストールする(可能な限りパッケージ管理ソフトでインストールする) 2. 使用するソフト(Octaveに相当)から外部ライブラリを使うためのライブラリをインストールする。 この2段階になっている場合がほとんどです。Rのように2をやると1も自動的にやってくれるものもあります。 前の回答にも書きましたが、初心者がやってはいけないことをいっぱいやっているので、傍観していましたが、次のことを書き込めばこちらでもやってみます。 1) 質問欄のライブラリをインストールするためのコマンド全て。 2) 正しくインストールできたか確認するためのテストプログラム。 Rでもlibsvmを使ったライブラリがあり、日本語の記事がたくさんあります。こちらの方が楽な様におもいます。 一部試してみましたが、Rのメニューから選ぶだけでlibsvmもインストールでき、正常に動作することを確認できました。

chosukej
質問者

補足

アドバイスありがとうございます。 Rでやれば全部うまくいくのかもしれませんが,その他のプログラムなどを既にOctaveで書いてしまっているので,どうしてもOctaveで実行したいのです。 エラーに至った経緯を,1), 2)の事項を考慮して以下に示します。 1. Octave3.8.2のダウンロード http://sourceforge.net/projects/octave/files/Octave%20MacOSX%20Binary/test/2014-09-25-Binary-of-GNU-Octave-3.8.2-for-OSX-10.9.5/  から,'GNU_Octave_3.8.2-1.dmg'をダウンロード。 2. Octave3.8.2のインストール 'GNU_Octave_3.8.2-1.dmg'を起動し,'Octave-3.8.2-1.mpkg'を開き, 指示に従ってインストール。すると,アプリケーションフォルダに,'Octave-cil'が出現する。 3. コマンドを実行  'Octave-cil'を起動し,以下のコマンドを実行する。 (libsvmと,image_folder/IMG.jpgはデスクトップに保存されている) octave:1> cd /Users/'username'/Desktop/libsvm-3.20/matlab octave:2> make octave:3> z = [1; -1; -1; 1]; octave:4> X = [0, 0; 0, 1; 1, 0; 1, 1;]; octave:5> model = svmtrain(z, X); * optimization finished, #iter = 2 nu = 1.000000 obj = -3.690364, rho = 0.000000 nSV = 4, nBSV = 4 Total nSV = 4 octave:6> cd /Users/'username'/Desktop/image_folder octave:7> img = imread('IMG.jpg'); error: default_formats: /usr/local/octave/3.8.2/lib/octave/3.8.2/oct/x86_64-apple-darwin13.4.0/__magick_read__.oct: failed to load: dlopen(/usr/local/octave/3.8.2/lib/octave/3.8.2/oct/x86_64-apple-darwin13.4.0/__magick_read__.oct, 2): Symbol not found: __ZN6Magick5ColorC1Ejjj Referenced from: /usr/local/octave/3.8.2/lib/octave/3.8.2/oct/x86_64-apple-darwin13.4.0/__magick_read__.oct Expected in: /usr/local/octave/3.8.2/lib/libGraphicsMagick++.3.dylib in /usr/local/octave/3.8.2/lib/octave/3.8.2/oct/x86_64-apple-darwin13.4.0/__magick_read__.oct error: called from: error: /usr/local/octave/3.8.2/share/octave/3.8.2/m/image/imformats.m at line 255, column 11 error: /usr/local/octave/3.8.2/share/octave/3.8.2/m/image/imformats.m at line 78, column 3 error: /usr/local/octave/3.8.2/share/octave/3.8.2/m/image/private/imageIO.m at line 60, column 7 error: /usr/local/octave/3.8.2/share/octave/3.8.2/m/image/imread.m at line 107, column 30 octave:7> すると,このようなエラーが出ます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Octaveで画像が読み込めない(imread)

    Octaveで画像読み込みコマンド img = imread('IMG_0614.jpg'); と打つと, error: imread: invalid image file: /usr/local/Cellar/octave/3.8.1_1/lib/octave/3.8.1/oct/x86_64-apple-darwin14.1.0/__magick_read__.oct: failed to load: dlopen(/usr/local/Cellar/octave/3.8.1_1/lib/octave/3.8.1/oct/x86_64-apple-darwin14.1.0/__magick_read__.oct, 2): Library not loaded: /usr/local/lib/libGraphicsMagick++.3.dylib Referenced from: /usr/local/Cellar/octave/3.8.1_1/lib/octave/3.8.1/oct/x86_64-apple-darwin14.1.0/__magick_read__.oct Reason: image not found error: called from: error: /usr/local/Cellar/octave/3.8.1_1/share/octave/3.8.1/m/image/private/__imread__.m at line 181, column 7 error: /usr/local/Cellar/octave/3.8.1_1/share/octave/3.8.1/m/image/private/imageIO.m at line 66, column 26 error: /usr/local/Cellar/octave/3.8.1_1/share/octave/3.8.1/m/image/imread.m at line 107, column 30 というエラーが出て,画像を読み込めません。 コマンドは,ファイル'IMG_0614.jpg'のあるディレクトリで実行しています。 少し調べてみて,「imageパッケージがインストールされていない」のかもしれないと思い, pkg install -forge image と打ちましたが, error: the following dependencies were unsatisfied: image needs octave >= 4.0.0 と,Octaveのバージョン4.0.0が必要と出てきました。 そこで,Octaveのダウンロードサイト http://wiki.octave.org/Octave_for_MacOS_X を見ましたが,3.8が最新バージョンみたいで,4.0はありませんでした。 とにかく困っています。 Octave で imread を使うにはどうしたらいいのか, 何か良い方法があれば,教えてください! よろしくお願いしますm(_ _)m ちなみに環境は,Mac OS X Yosemite 10.10.2です。

  • Octaveで画像が読めなくて困ってます。

    はじめまして! 家で夏休みの課題でMATLABの演習をやってるいるのですが、 MATLABは学校でしか使えません。だから、無料配布のOctaveを使っています。 いま、Octaveで二次元FIRフィルタで画像を処理したいのですが、imread('ファイル名')で画像が読み込めません。エラーのメッセージはこんな感じです。 error: could not read file: C:/PROGRA~1/GNUOCT~1.36/tmp/oct-610bfb74.0 error: evaluating if command near line 178, column 4 error: called from `imread' in file `/usr/share/octave/2.1.36/m/image/imread.m' error: near line 2 of file `/octave_files/octave13_3.m 処理したい画像ファイルはoctave_filesに入れてやっていいるのですが、 違うところに入れないといけないのか。 あるいはたんにプログラムに問題ありなのか。 わかる方がいればよろしくお願いします。

  • Image::Magickが突然動作しなくなってしまったので解決策を

    MovableTypeを今まで使用して、画像のサムネイル作成などをおこなっていましたが、突然下記のようなエラーが出るようになってしまいました。 「Internal Server Error・・・・・・・ Apache/1.3.33 Server」 MovableTypeのmt-check.cgiを実行したところ、 このようなメッセージがでます。 「オペレーション・システム: freebsd  Perl のバージョン: 5.6.1  (おそらく) cgiwrap もしくは suexec が有効になっています  Image::Size  サーバには Image::Size がインストールされていました。(バージョン: 2.93).  Image::Magick  サーバには Image::Magick がインストールされていました。(バージョン: 6.2.0).」 MTの他にも、Image::Magickを使ったCGIが動作しません。 サーバーのエラーログをみると、このようなものがありました。 「Can't load '/usr/local/lib/perl5/site_perl/5.6.1/i386-freebsd/auto/Image/Magick/Magick.so' for module Image::Magick: Shared object "libMagick.so.8" not found at /usr/local/lib/perl5/5.6.1/i386-freebsd/DynaLoader.pm line 206. at /usr/local/apache/htdocs/●●.cgi line 1213 Compilation failed in require at /usr/local/apache/htdocs/●●.cgi line 1213. BEGIN failed--compilation aborted at /usr/local/apache/htdocs/●●.cgi line 1213. [Thu Jan 19 11:48:02 2006] [error] [client 210.172.143.2] Premature end of script headers: /usr/local/apache/htdocs/●●.cgi 」 ●●.cgi line 1213 の部分には、use Image::Magickがあります。 今まで、問題なく動作していたので、原因がわかりません。 サーバの設定が突然かわってしまうようなことがあるのでしょうか? また解決策をご存知でしたらぜひよろしくお願いいたします。perlのバージョンは5.6.1です。

    • ベストアンサー
    • Perl
  • octaveのコンパイルオプション

    MATLABのクローンのoctaveを, C++のライブラリとして利用したいと考えているのですが, コンパイルが上手くいきません. プログラムは以下のような単純なものです. --------- begin of hello.cpp ------------------ #include<iostream> #include<octave/config.h> #include<octave/Matrix.h> int main(){ Matrix m(2,2,1.0); cout<<"hello octave !"<<m; return 0; } --------- end of hello.cpp -------------------- 次のようなコンパイルオプションでコンパイルしています. > g++ -I/usr/include/octave-2.1.35/ -L/usr/lib/octave-2.1.35 \ -loctave -lcruft -loctinterp -lreadline -lcurses -llapack \ -lblas -ldl -lg2c -L/home/pippin/name/.redhat/SOURCES/octave-2.1.35/kpathsea \ -lkpathsea hello.cpp すると,次のようなエラーメッセージを返されます. /tmp/ccuvk2IV.o: In function `main': /tmp/ccuvk2IV.o(/text+0x2c): multiple definition of `main' /usr/lib/gcc-lib/i386-redhat-linux/2.96/libg2c.a(main.o)(.text+0x0): first definition here /usr/bin/ld: Warning: size of symbol `main' changed from 58 to 174 in /tmp/ccuvk2IV.o collect2: ld returned 1 exit status エラーメッセージから解するに,libg2c.aでもmain関数が定義されているため, hello.cppのmain関数とかぶるという様な事だと思うんですが,ライブラリに main関数が定義されているというのも変な話です. ちなみに,コンパイルした環境は, OS: redhat linux 7.3 octave version 2.1.35 gcc version 2.96 このタイプのエラーを回避する方法を知っておられる方は, 回答の方よろしくお願いします.

  • Image::Magickの使い方を教えてくださいm(__)m

    CGIプログラミング第2版 P383のサンプル"commute_pie2.cgi"が動きません!! サンプルどおりのスクリプトを作成したのですが、フォーマットが不正というようなエラーになってしまいます。 エラー箇所を突き止めたので見てください。 エラー内容をお見せしたいため、次の簡易スクリプトを作成しました。 #!/usr/bin/perl use Image::Magick; my($mgk) = new Image::Magick(format => "png"); これを実行すると Exception 410: Invalid attribute (format) at /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/Image/Magick.pm line 66. というエラーメッセージになります。 おそらくフォーマットとして"png"というリテラル値を指定しているが、このリテラル値が誤っているのではと予想しています。 どなたかImage::Magickの使い方を教えてください!! 環境はCD3枚組のRed Hat Linux 8をフルインストールしています。

    • ベストアンサー
    • Perl
  • DBIをCPANからインストール時にエラーが発生します??

    DBIモジュールを、CPANからインストールしたところ、 以下の様な■エラーコード:35 ■が発生します。 これは、何が原因なのでしょうか? それとも、これで正常にインストールされているのでしょうか? 対処法をお願い致します。 メッセージ)※一部、割愛 .............Can't locate Storable.pm in @INC (@INC contains: blib/arch blib/lib /usr/local/lib/perl5/5.6.1/i386-freebsd /usr/local/lib/perl5/5.6.1 /usr/local/lib/perl5/site_perl/5.6.1/i386-freebsd /usr/local/lib/perl5/site_perl/5.6.1 /usr/local/lib/perl5/site_perl /usr/local/lib/perl5/5.00503 /usr/local/lib/site_perl .) at t/11fetch.t line 8. BEGIN failed--compilation aborted at t/11fetch.t line 8. Can't locate Storable.pm in @INC (@INC contains: blib/arch blib/lib /usr/local/lib/perl5/5.6.1/i386-freebsd /usr/local/lib/perl5/5.6.1 /usr/local/lib/perl5/site_perl/5.6.1/i386-freebsd /usr/local/lib/perl5/site_perl/5.6.1 /usr/local/lib/perl5/site_perl /usr/local/lib/perl5/5.00503 /usr/local/lib/site_perl .) at t/11fetch.t line 8. BEGIN failed--compilation aborted at t/11fetch.t line 8. ...propagated at t/zvpp_11fetch.t line 4. ***■ Error code 35 ■ Stop in /.cpan/build/DBI-1.48. /usr/bin/make test -- NOT OK Running make install make test had returned bad status, won't install without force cpan>

    • ベストアンサー
    • Perl
  • Can't locate...

    こんにちは。Perl初心者で、 ネット上のPerlのサンプルプログラムを動かそうとしましたが 以下のようにエラーがでて実行できません。。 Can't locate Lingua/JA/Romanize/Japanese.pm in @INC (@INC contains: ./ /usr/local/lib/perl5/5.00504/i686-linux /usr/local/lib/perl5/5.00504 /usr/local/lib/perl5 /site_perl/5.005/i686linux /usr/local/lib/perl5/site_perl/5.005 .) at object.cgi line 4. BEGIN failed--compilation aborted at object.cgi line 4. これはどういったエラーで、どうすれば解決しますか。 教えてください。

  • Movable Type5 で ImageMagickのインストールで

    Movable Type5 で ImageMagickのインストールできません。 初めまして 皆様方。 Movable Type5 ImageMagickの検索でこちらに到着しました。 他のサイトを参考にしてImage::Magickのバージョンを変えて試していますが、 以下の内容でエラーになってしまいます。 『サーバーに Image::Magickか、Image::Magickの動作に必要な他のモジュールがインストールされていません。』 と 言うエラー内容です。 現在の環境は下記の通りです。 Win XP pro SP3 Apache2.2.15-win32-x86-openssl-0.9.8m-r2 PHP5.3.2 MT5.2 ActivePerl 5.10.1 Build 1007 ImageMagick 6.6.2 6 Q8 C:\usr\site\lib\Image\Magick.pm あります。 C:\usr\site\lib\auto\Image\Magick 配下にもありました。 C:\Perl\bin>ppm install http://www.bribes.org/perl/ppm/Image-Magick.ppd PPM でインストールするとImageMagick6.5.7になっています。 Perl Package Manager にて確認しました。 試しに6.5.7もインストールして試しましたが同じ結果です。 ImageMagickはアンインストール後にインストールをしてPathも以前の物は削除 してます。 同じ環境をW2KにインストールするとImage::Magicが認識されてます。 W2KはFAT32 Formatです。 お知恵をお借りしたいと思いまして、書き込みさして頂きました。 よろしくお願いいたします。

  • Image::Magickの呼び出し

    前の質問が未解決なのですが、同時に進めていたこちらも行き詰ってしまったので恐縮ながら質問です。 Image::Magickを使用したく、以下のサイトを参考にインストールを試みました。 http://www.ss.iij4u.or.jp/~somali/web/_imagemagick.html (当方の環境は、Win XP Home/Apache 2.0をローカルサーバとし、ActivePerl 5.8.7を使用しています。) しかしページどおりに作業をしても、CGIでuse Image::Magickを書いたラインがエラーを返してきます。Can't locate Image/Magick.pm in @INC (@INC contains: C:/usr/local/lib C:/usr/local/site/lib .) at 【CGIファイルの場所】 と返されていました。 解決のために以下のことを確認・実行しました。 (1)(インストーラではチェックを入れたのに)PerlMagickがPerlのsite/libにインストールされておらず、C直下のImageMagickフォルダのなかにありました。(アンインストールの上再インストールをしても同様) よってPerlMagickフォルダ内のReadMeに倣い、PPMからImageMagick.ppdを実行、インストールしました。PPMからquery *を実行すると、ちゃんとインストールされているのが確認できました。 (2)Magick.pmの入っているImageフォルダをC:\Perl\binフォルダの中にコピーし、サーバを再起動。(C:\Perl\binにパスが通っていることは、コマンドラインからPATHを実行して確認済。) それでもやはり動きません…。PCを再起動しても同様です。同じエラーが返ってきます。 モジュールを使うのは初めてで、CPANなどよくわからない部分も多いのですが、もうこれ以上何をしたらいいのかわかりません…。 何か解決策をご存知の方いらっしゃいましたらよろしくご教授下さい。

    • 締切済み
    • CGI
  • Smartyの設定について

    FedoraCore 4 MySQL 4.1.14 PHP 5.0.4    を使ってます。 Smartyを入れようと思い、Web上でいろいろ調べてやっているのですが、うまく動きません。 解凍したSmartyをフォルダごと /usr/local/lib/php/Smarty に移動し、 /etc/php.ini の中のinuclude_pathを include_path = ".:/usr/local/lib/php:/usr/local/lib/php/Smarty" としました。 そして、Demoフォルダを /var/www/html/demo/に移動してブラウザ上でdemoを見ているのですが、下記のエラーがでてしまいます。 Warning: main(/usr/local/lib/php/Smarty/Smarty.class.php) [function.main]: failed to open stream: No such file or directory in /var/www/html/demo/index.php on line 3 Fatal error: main() [function.require]: Failed opening required '/usr/local/lib/php/Smarty/Smarty.class.php' (include_path='.:/usr/local/lib/php/Smarty') in /var/www/html/demo/index.php on line 3 エラーの内容を見てみると Smarty.class.phpを呼び出すには /usr/local/lib/php/Smarty/lib/Smarty.class.phpとなっていないとおかしいと思うのですが、このあたりどう設定してよいのかわかりません。 Smartyの基本的な設定を何卒ご教授ください。

    • ベストアンサー
    • PHP
このQ&Aのポイント
  • エコー画像を使った性別の確定方法について調べてみました。19週のエコー画像で男の子と言われましたが、縦線が玉袋の筋だということでしょうか?男の子で確定ですかね?
  • エコー画像を使った性別の確定方法について調べてみました。19週のエコー画像で男の子と言われましたが、男の子という確信は持てないようです。縦線は玉袋の筋とも言われますが、確定的な情報ではありません。もう少し成長を待って確定させるのが良いでしょう。
  • エコー画像を使った性別の確定方法について調べてみました。19週のエコー画像で男の子と言われましたが、男の子かどうかは確証が持てないようです。縦線は玉袋の筋とも言われますが、他の要素と合わせて判断する必要があります。医師に相談してみると良いでしょう。
回答を見る

専門家に質問してみよう