hidebun の回答履歴
- opencv 1.1から2.2への変更
現在opencv1.1を使って画像処理のプログラムを組んでいるんですが、バーション1.1には距離画像を生成するための関数(キャリブレーションのための関数だったかも)にバグがある(らしい)のでバーション2.2に移行することを検討中です。 そこで質問なのですが、1.1と2.2では新しく追加された関数やバグが修正された関数を除いて各関数の使い方(入出力や、機能など)は同じでしょうか?
- 終了処理が実行されない場合はある?
プログラムの終了時に、確実にデータをファイルに書き出したいと思っています。 以下の場合の中で、終了処理のコードが実行されない、あるいは書き込みバッファやファイルシステムのキャッシュがフラッシュされない、等の理由で、ファイルへの書き出しが失敗する可能性があるのはどれでしょうか? 失敗する理由や、対処法も教えていただければ幸いです。 また、他にも注意すべきケースはありますでしょうか? 1.(ユーザによって)タスクマネージャから強制終了された時 2.「応答がありません」になってから(ユーザによって)強制終了された時 3.Windowsシャットダウン時に(OSによって)強制終了された時 4.何のエラーメッセージも表示されず、突然終了した時 (たまにこういうアプリありますよね?) 5.ブルースクリーンになった時 よろしくお願いします。
- ベストアンサー
- C・C++・C#
- minimax2005
- 回答数4
- 処理負荷特定で考えられる要因について
元々他の人が作成したコードなのですが 元はXPで使用 その時はそういった現象が出ていないようにも思えますが 頻度の問題で気が付かなかったのかもしれません (現在も動いていますが特に問題が出ているということを聞いていません) 現在 Win7上のVC6(SP6)にて ini ファイルへの書き込み処理を行っている関数Aがあり それを関数Bからコールしています 関数の関係は下に書いたようなイメージになります その他複数スレッドなども存在し各種動作を行っています 問題なのは不定期に(頻度も少ない様ですが)関数Aの処理時間が 30秒以上かかることがあるようなのです(ファイルCのチェックにて確認) もちろん通常は0~1秒程度しかかかっていません なぜそのような現象が発生するのか要因がつかめずに悩んでいます (しかも30秒っていくらなんでもかかりすぎだろう と) 考えられる可能性がありましたら何でもいいので教えていただけないでしょうか 少しでも情報が欲しいので可能性・想像だけでも構いません (あまりにも現実離れした想像は困りますが) 関数B { ファイルCに処理開始時間保存 (普通のファイル書き込み処理 追加モード) 関数A ファイルCに処理終了時間保存 (普通のファイル書き込み処理 追加モード) } 関数A { 特定 INI ファイルへの書き込み 使っているのは APIや標準関数のみ sprintf ・ WritePrivateProfileString 関数 セクション・キー名など変えて 50回前後実行します(1つの ini ファイルです) } ウイルスバスターが動いている環境で 上記に類似したコードを動かしたときに 異常に処理負荷がかかったということは経験しています (多分ファイルオープンクローズを繰り返しているためかなと想像しています) ただしこの時は時々とかいう問題では無いためすぐにわかりました (上記現象は分かっているため)該当PC上ではウイルススキャンの類のソフトは インストールしていません 閉塞LAN構築下に存在しているPCとなります TCP/IP 通信 共有も行っているのでファイヤーフォールは無効にしています あまり関係ないと思いますが DI/Oボード増設を行っています その他については特殊な設定は行っていないと思っていただいて構わないと思います (既に十分特殊という話もあるかもしれません) 一つのファイルへのオープンクローズを一気に50回前後繰り返すという 作りもいまいちなのですが 既に駆動しているプログラム・ ini ファイルの操作の手軽さということでそのような作りになってしまっています 簡単に他の形に置き換えられるのであればそれでもかまわないのですが INIファイルの特定セクションや特定キーの一部データの更新という処置の為 自前でやるのにも現在躊躇している状態です -> こうすれば簡単に置き換えが可能だって話があればそういった情報でも構いません 全ファイル読み込んだうえでセクションやキーをチェック該当部分を 置き換え(バッファ操作)して最後に一括で書き込めばいい といったことは分かっています (それを自前でやってないのがini ファイルの操作の手軽で~~ということです) 悩んでる間に作っちまえ という話もあるもかもしれませんが (微妙な諸事情もあるので)あえてそこには触れないでください 他に必要な情報があれば必要に応じて追記させていただきます
- 処理負荷特定で考えられる要因について
元々他の人が作成したコードなのですが 元はXPで使用 その時はそういった現象が出ていないようにも思えますが 頻度の問題で気が付かなかったのかもしれません (現在も動いていますが特に問題が出ているということを聞いていません) 現在 Win7上のVC6(SP6)にて ini ファイルへの書き込み処理を行っている関数Aがあり それを関数Bからコールしています 関数の関係は下に書いたようなイメージになります その他複数スレッドなども存在し各種動作を行っています 問題なのは不定期に(頻度も少ない様ですが)関数Aの処理時間が 30秒以上かかることがあるようなのです(ファイルCのチェックにて確認) もちろん通常は0~1秒程度しかかかっていません なぜそのような現象が発生するのか要因がつかめずに悩んでいます (しかも30秒っていくらなんでもかかりすぎだろう と) 考えられる可能性がありましたら何でもいいので教えていただけないでしょうか 少しでも情報が欲しいので可能性・想像だけでも構いません (あまりにも現実離れした想像は困りますが) 関数B { ファイルCに処理開始時間保存 (普通のファイル書き込み処理 追加モード) 関数A ファイルCに処理終了時間保存 (普通のファイル書き込み処理 追加モード) } 関数A { 特定 INI ファイルへの書き込み 使っているのは APIや標準関数のみ sprintf ・ WritePrivateProfileString 関数 セクション・キー名など変えて 50回前後実行します(1つの ini ファイルです) } ウイルスバスターが動いている環境で 上記に類似したコードを動かしたときに 異常に処理負荷がかかったということは経験しています (多分ファイルオープンクローズを繰り返しているためかなと想像しています) ただしこの時は時々とかいう問題では無いためすぐにわかりました (上記現象は分かっているため)該当PC上ではウイルススキャンの類のソフトは インストールしていません 閉塞LAN構築下に存在しているPCとなります TCP/IP 通信 共有も行っているのでファイヤーフォールは無効にしています あまり関係ないと思いますが DI/Oボード増設を行っています その他については特殊な設定は行っていないと思っていただいて構わないと思います (既に十分特殊という話もあるかもしれません) 一つのファイルへのオープンクローズを一気に50回前後繰り返すという 作りもいまいちなのですが 既に駆動しているプログラム・ ini ファイルの操作の手軽さということでそのような作りになってしまっています 簡単に他の形に置き換えられるのであればそれでもかまわないのですが INIファイルの特定セクションや特定キーの一部データの更新という処置の為 自前でやるのにも現在躊躇している状態です -> こうすれば簡単に置き換えが可能だって話があればそういった情報でも構いません 全ファイル読み込んだうえでセクションやキーをチェック該当部分を 置き換え(バッファ操作)して最後に一括で書き込めばいい といったことは分かっています (それを自前でやってないのがini ファイルの操作の手軽で~~ということです) 悩んでる間に作っちまえ という話もあるもかもしれませんが (微妙な諸事情もあるので)あえてそこには触れないでください 他に必要な情報があれば必要に応じて追記させていただきます
- 課題で悩んでます
nclude <stdio.h> void main(){ int okane; float kion; printf("今日のお金は?\n"); scanf("%d",&okane); printf("今日の気温は?\n"); scanf("%f",&kion); if( okane >=700&&kion>=30.0 ){ printf("冷やし中華を食べよう\n"); } if( okane >=700&&kion<30.0 ){ printf("ラーメンを食べよう\n"); } if( okane <=700){ printf("バイトしろ"); } } この文で論理演算子を抜いてifelse文に書き換えろという課題が出たのですが分からないので全文教えて下さい
- txtファイルの読込み時に1033文字を超えると
txtファイルをfopen_s関数にモード"r"で読み込んでいます。 それをwhile (fgets(~~) != NULL) { ~ } で 1行ずつ読み込んでいるのですが、 この時1行の文字数が半角1033文字を超えていると 1034文字目からが「2行目扱い」になり 予期せぬ困った挙動を起こしてしまいます。 (Windowsのメモ帳では1035文字目から無理矢理改行表示されますが) なぜこの様な事が起こるのでしょうか? どうやって回避するのが一般的なのか教えて頂けますと幸いです。 ※OS:WindowsXP コンパイラ:Visual C++2008 EE
- ベストアンサー
- C・C++・C#
- noname#202167
- 回答数2
- ウェブカメラについての質問です
ロジクールのウェブカメラqcam pro 4000とOpenCV1.0を使って動画像処理を勉強しているのですが、カメラからPCに画像が送られてくる際、どんな形式で送られてくるのかわからないのですが、どうすれば確認できるのでしょうか? どなたか回答お願いします。
- 締切済み
- C・C++・C#
- bluelion6006
- 回答数1
- こんなプログラムはありますか?
2人のプレーヤがタバスコをピザに交互にふりかけます。 タバスコを振りかける回数はあらかじめ与えられており,最後にタバスコをピザにかけた人がピザを食べないといけません. パスはできません. タバスコを振りかける合計回数と,プレーヤが1 回に振りかけることができる最大の回数をコンピュータに入力した後,ゲームを開始する。 といった感じのプログラムなのですが・・・ 見本などあれば参考にしたいのでお願いします。 【実行例】 最後にタバスコをかけた人がピザを食べるルールです。 タバスコをかけられる回数は? 20回です。 1回にタバスコをかけられる最大の回数は? 4回です。 自分はタバスコを2回かけます。 残りは18回です。 何回かけますか? 3回かけます。 残りは15回です。 ・ ・ ・ 自分はタバスコを1回かけます。 残りは0回です。 あなたの負けです。 残さず食べてくださいね!
- ベストアンサー
- C・C++・C#
- noname#121479
- 回答数3
- GPSのデータで緯度経度を示すデータを切り出すには
プログラミングで、GPSのデータから緯度経度が示されているデータ行を切り出す(表示する)機能を実現する。 というプログラムは完成したのですが、 次に、緯度経度が示されているデータ行から緯度経度を示すデータを切り出す(表示する)機能を実現する。 というプログラムがどうしてもわかりません。 助けていただきたいです。
- 作っているプログラムが分かりません・・・
プログラムが… 以下のプログラムを作っているのですが、よく分かりません・・・ A監督が 77,B走塁コーチは 78 です.さて,77 と 78の素因数の和は等しくなっています. つまり,77=7×11,78=2×3×13,7+11=18,2+3+13=18 となっています. このように,素因数の和が互いに等しいという条件を満たすような, 差が 1 の自然数の組を 20000 以下でできるだけ多く探索しましょう. ここで,20000 以下には 26 組しかないことがわかっています. #include<stdio.h> #difine MAX 20000 int main(){ int sum[MAX+1]; int i,j,n; for(i = 2;i <= MAX;i++){ j = 2; while(j*j <= i){ if(i % j == 0){ _________________; break; } else j++; } if(j*j > i) ___________________; } n = 0; for(i = 2;i < MAX;i++) if(sum[i] == sum[i+1]){ n++; printf("%3d (%d,%d)\n",n,i,i+1); } return 0; } 補足 分からないのはプログラムの書き方で _________________;の部分だけでも答えていただけるとありがたいです。
- 締切済み
- C・C++・C#
- noname#121479
- 回答数5
- ディスクの空き容量を取得するシステム関数はありますか?
ディスクの空き容量を取得するシステム関数はありますか? dfコマンドで、ディスクの空き容量を取得できますが、 このdfコマンドに相当するシステム関数はありますでしょうか? やりたいことは、例えば、/etc/varのディレクトリの空き容量がどれくらいあるかを取得したい ということです。 dfコマンドにより上記は、実現出来ますが、直接C言語から呼び出すことが可能なシステム関数があれば と思い質問しました。 上記に該当するシステム関数がない場合はsystem関数を使用してdfを実行する予定ですが、それは最後の手段と考えています。 OSはintel版solarisで使用する予定ですが、linux前提でもかまいません。
- Borland C Builder で OpenCVを使用しようとして
Borland C Builder で OpenCVを使用しようとしています。 開発環境は W.XPです。 OpenCVはV1.0を使用しています。 http://sourceforge.net/projects/opencvlibrary/ のVews all filesからOpencv-winの1.0のフォルダーをDLして検討しています。 ようやくサンプルプログラムをコンパイル、実行出来る状態になりました。 このフォルダー内のサンプルプログラムの内、2つはコンパイルし実行する事が出来ました。 その他のサンプルプログラムですが、例えばサンプルのs22のtutorial_02.cppをコンパイルすると、リンカーエラー 外部シンボル_cvCreateImageが未解決です・・・が出ます。 DLしたLibフォルダーの中を見ると色々なファイルがあり、同名のファイルもありますが、拡張子がchfと成っています。 試しにこのファイルをそのままリンクしてみましたが、解決しませんでした。 多分、このファイルの拡張子がlibのものがあればリンク出来ると思うのですが、ネットでCHFファイルを検索しても、Change Font File位しかヒットしません。 この辺お分かりに成る方居られましたら解決法をお教え下さい。 よろしくお願い致します。
- Windows Vista、7でのマルチスレッドのパフォーマンスの低下
Windows Vista、7でのマルチスレッドのパフォーマンスの低下について WIN32で多数のスレッドが動作するプログラムを、Windows Vistaまたは7で動かすと、 Windows XPで動かす場合に比べて、10倍以上時間がかかります。 この原因として、何か考えられることはありますか?
- ETロボコン参加者限定サンプルプログラム
ETロボコン参加者限定サンプルプログラム 以前http://okwave.jp/qa/q6249749.htmlを質問したものです。 この質問で、ETロボコン参加者のみに配布されているサンプルプログラムがあることを知りました。 そのサンプルプログラムはどこにも公開などはされていないでしょうか? ETロボコンに参加されている方のブログなどを見ていると、「sample.c」というプログラムを発展させていっている感じがします。 私は公式ではありませんが、地方の大会に出場する予定です。公式大会ではないので、そのようなプログラムはもらえていません。 そのような方は少ないようで、サイトなどで調べても「サンプルプログラムをこのようにいじって~」と書かれているのでよく分からないのです。 参加者のみに配布されているサンプルプログラムを入手する方法はありませんか? また、初心者&指導者もいないので分かりやすい書籍などはありませんか? よろしくお願いします。
- OpenCVを Borland C++ Builder で使いたいので
OpenCVを Borland C++ Builder で使いたいのですが、やり方がわかりません。 実際にOpenCVをBorlend C++ Builderに結合出来た方の回答をお願い致します。 ネットを検索してみたのですが、OpenCV V1 V2.0 V2.1の記事がごっちゃに成っていて、かつVisual Studioの記事が多く、Borlandの記事が余り見つからず、見つかってもOpenCV V1のものです。 出来れば最新の物を使用したいので、OpenCV 2.1を結合しようと思っています。 http://opencv.jp/opencv2-x-tips/install-on-windowswindows32bit-64bit-visual-studio-opencv21に書かれている通りにOpenCV-2.1.0-win32-vs2008.exeをDLしてCMAKEをBuildMakefilesを選択して Use default native compilersのラジオボタン実行すると、指定フォルダーに色々ファイルが作成されますが、これらを更にどのように加工して行けばBorland C++ builder用のBin h 等のファイルが作成されるのでしょうか。 CMAKE実行後のBuildフォルダー内のbin、libフォルダー内は空でした。 マニュアルによるとVisual Studioの時はOpenCV.slnが作られる事に成っていますが、BuildMakefilesを選択して実行後、*.sinで検索して見ましたが何も見つかりませんでした。 やり方をご存知の方、お教え下さい。 よろしくお願い致します。む
- OpenCVを Borland C++ Builder で使いたいので
OpenCVを Borland C++ Builder で使いたいのですが、やり方がわかりません。 当方の環境はW.XP Borland c++ Builder V5です。 ネットを検索してみたのですが、OpenCV V1 V2.0 V2.1の記事がごっちゃに成っていて、かつVisual Studioの記事が多く、Borlandの記事が余り見つからず、見つかってもOpenCV V1のものです。 出来れば最新の物を使用したいので、OpenCV 2.1を結合しようと思っています。 http://opencv.jp/opencv2-x-tips/install-on-windo … に書かれている通りにOpenCV-2.1.0-win32-vs2008.exeをDLしてCMAKEをBuildMakefilesを選択して Use default native compilersのラジオボタン実行すると、指定フォルダーに色々ファイルが作成されますが、これらを更にどのように加工して行けばBorland C++ builder用のBin h 等のファイルが作成されるのでしょうか。 マニュアルによるとVisual Studioの時はOpenCV.slnが作られる事に成っていますが、BuildMakefilesを選択して*.sinで検索して見ましたが何も見つかりませんでした。 やり方をご存知の方、お教え下さい。 ただ、申し訳ありませんが、私が混乱しておりますので、実際にBuilderで実行された方のご回答をお願い致します。 よろしくお願い致します。
- ITです。早速ですがwinsockでURLを指定した接続確認をしたいの
ITです。早速ですがwinsockでURLを指定した接続確認をしたいのですが、うまくいきません。 下記のソースで、URLを指定してinet_addr関数呼び出すと-1、 gethostbynameを呼び出すと0が却ってきてしまい、うまく接続出来ません。 IPアドレス(127.0.0.1)を指定すれば、上記の関数は成功するのですが。 URLからIPアドレスの変換方法が解りません。 どうか助けて下さい。 int main(int argc, char* argv[]) { WSADATA wsaData; sockaddr_in server; SOCKET sock; long err; hostent *host; char *url = "http://www.yahoo.co.jp"; // winsock2の初期化 err = WSAStartup(MAKEWORD(2,0), &wsaData); if (err != 0) { printf("WSAStartup error = %d\n", err); return(-1); } // ソケットの取得 sock = socket(AF_INET, SOCK_STREAM, 0); if (sock == INVALID_SOCKET) { printf("socket error = %d\n", WSAGetLastError()); return(-1); } // IPアドレスの取得 memset(&server, 0, sizeof(server)); server.sin_family = AF_INET; server.sin_port = htons(80); server.sin_addr.S_un.S_addr = inet_addr(url); if (server.sin_addr.S_un.S_addr == -1) { host = gethostbyname(url); if (host == NULL) { printf("host not found host = %d\n", WSAGetLastError()); return(-1); } }
- フォルダーが削除できなく、困っております。
フォルダーが削除できなく、困っております。 いろいろ試しましたが、解決できませんでした。 1.セーフモードで実行 2.コマンドプロンプト:c:\>rd /s \\?\ c:\Workspace 3.C言語:RemoveDirectory 関数 削除ソフトというものがあるようですが、操作方法が難しく、理解できませんでした。 他にご存知の方がおられましたら教えてください。 よろしくお願いいたします。
- ベストアンサー
- C・C++・C#
- hatokamome
- 回答数2
- C++ Vectorのデストラクタ
C++ Vectorのデストラクタ boost::any型のVectorに自作クラスをpush_backで入れると、なぜかその自作クラスのデストラクタが呼ばれてしまって困っています。 またそのクラスの関数を実行すると同じようにデストラクタが呼ばれてしまいます。
- ベストアンサー
- C・C++・C#
- whiterozes
- 回答数2
- 私は、プログラマーになって5年目になる者です。
私は、プログラマーになって5年目になる者です。 しかし、恥ずかしい事にプログラミングができません。 他の方から見れば、え!?って思われるほどできないと思います。 本当に5年間も何をやってきたんだと言われるのではと思うくらいできません。 言われるのではというか言われると思います。 学生の頃から勉強をろくにせず、社会人になってからもできないとわかっていながら できるようになるための努力をしてきませんでした。 それならただ努力を怠っているだけだ!!と言われればそれまでなのですが どうも自分には無理だという気持ちが先行してできないという壁を作っているように感じています。 さらに辞めたい向いていないとばかり考えるようになって余計に出来ないという気持ちが強く なってしまいました。 でも、最近になりある出来事が起こりました。 それがきっかけで、徐々にはですが無理と思う前にやるんだという気持ちになってきました。 5年目で今のプログラミング能力では色々言われるかもしれませんが、しっかり今の問題に向き合って できるようになりたいです。 そこで、プログラミングができるようになるためにはどのような勉強法が良いかを教えていただければ と思います。 人によりけりで一言にこれっていうものがないかもしれませんが、よろしくお願いいたします。 他にも情報系の用語など色々勉強する必要があるのですが、優先的にプログラミングができるように したいと考えています。 他にも私に今重要な事これ大切なことはこれという事がありましたら合わせてお願いいたします。 質問というより悩み相談みたいになってしまいましたが、私は今自分を変えたい一心です。 何卒よろしくお願いいたします。 長文のうえ読みにくい文章となってしまい失礼しました。
- 締切済み
- C・C++・C#
- fanta_grape_8
- 回答数11