検索結果 23 件

by みえ
3年前
フォーラム: C言語何でも質問掲示板
トピック: cv::Opencvのimshow(...)の直後にcv::waitKey(0)
返信数: 13
閲覧数: 13911

Re: cv::Opencvのimshow(...)の直後にcv::waitKey(0)

OpenCVはなんでこんなやりかたにされているのでしょうか。 非常に非直感で、通常の他のGUI LIBと違います。 OpenCVのimshow(...)はMATLABのimshow(...)を真似て作られたと思いますが、 MATLABのimshow(...)は次にwait文がなければならないという話はありませんし。 MATLAB は使ったことがないので分かりませんが、OpenCV を使う側のプログラムがメッセージ ループやウィンドウ プロシージャを意識せずに済むようにウィンドウの表示を実装するなら、今のような形にならざるを得ないですし、ウィンドウ ベースのアプリケーションとしては自然な実装だ...
by みえ
3年前
フォーラム: C言語何でも質問掲示板
トピック: cv::Opencvのimshow(...)の直後にcv::waitKey(0)
返信数: 13
閲覧数: 13911

Re: cv::Opencvのimshow(...)の直後にcv::waitKey(0)

usao さんの説明をスルーしてしまうより、どの部分が分からなかったのかを書いていただいた方が建設的な議論ができると思いますが・・。 さて、質問者さんがどういうコードを書いているのか分からないので、以下のコードで説明します。 #include <opencv2/highgui.hpp> int main(int argc, char *argv[]) { if (argc >= 2) { auto image = cv::imread(argv[1], cv::IMREAD_COLOR); cv::namedWindow("Display window", cv::WINDOW_AUTOSIZ...
by みえ
3年前
フォーラム: C言語何でも質問掲示板
トピック: calloc + strcpyについて
返信数: 10
閲覧数: 2964

Re: calloc + strcpyについて

calloc や malloc といった API の仕様は、言語である C/C++ の範疇ではなく、ライブラリ (VC ランタイムや GLIBC) に依存する部分だと思います。"malloc しくみ" などのキーワードで検索すれば、どのようにメモリ領域が割り当てられるかを説明しているページが数多くヒットするので、幾つか探してみてはいかがでしょうか。また、Youtube には伝説の malloc 動画と呼ばれる有名な動画もあります。 このような結果となってしまった理由について、お願いしたいと思います。 aとbは不連続な領域をとり、aとbの間の領域に消えた12文字が存在する。 そのような結果となっ...
by みえ
3年前
フォーラム: C言語何でも質問掲示板
トピック: LINUX系のDLL利用はどうなるでしょうか
返信数: 3
閲覧数: 1004

Re: LINUX系のDLL利用はどうなるでしょうか

DLL は Windows の用語で、Linux には存在しません。Shared Object のことだと推測すると、下記 ld.so のマニュアルに書いてある通りだと思います。/lib と /usr/lib がデフォルトのようです。 ld.so(8) - Linux manual page http://man7.org/linux/man-pages/man8/ld.so.8.html When resolving shared object dependencies, the dynamic linker first inspects each dependency string to ...
by みえ
3年前
フォーラム: C言語何でも質問掲示板
トピック: メモリマッピングについて
返信数: 6
閲覧数: 1218

Re: メモリマッピングについて

CreateFileMapping の引数 dwMaximumSizeHigh/dwMaximumSizeLow は、マッピング可能な最大サイズで、0 にすると紐づけるファイルのそのときのサイズが最大サイズになります。shino0526y さんの回答にもありますように、CreateFileMapping はマッピング オブジェクトを作るだけで、実際のマッピングは行ないません。ファイルの内容を仮想メモリにマップするためには、マッピング オブジェクトに対して MapViewOfFile などの API を呼び出す必要があります。 MapViewOfFile が持つ dwFileOffsetHigh...
by みえ
3年前
フォーラム: C言語何でも質問掲示板
トピック: Opencvに明るい方へ
返信数: 2
閲覧数: 806

Re: Opencvに明るい方へ

その通りです。CUDA のツールキットをインストールしてから OpenCV をビルドすると組み込まれます。以下に示すページに書かれていますが、CMake のときに WITH_CUDA=ON オプションが付加されていて、かつ、CUDA のツールキットがインストールされていれば CUDA を組み込む Makefile が生成されます。(確か WITH_CUDA オプションはデフォルトが ON だったと思います。) GPU Module Introduction — OpenCV 2.4.13.2 documentation http://docs.opencv.org/2.4/modules/gp...
by みえ
3年前
フォーラム: C言語何でも質問掲示板
トピック: opencvで細線化
返信数: 4
閲覧数: 2086

Re: opencvで細線化

なるほど。そういう状況でしたか。API が実際にどのような計算をしているのかを知るために、自分で API と同じ実装を書いてみるというのはいい試みだと思います。OpenCV に関して言えば、オープンソースなので、実装が分からないときには https://github.com/opencv/opencv でコードを検索すれば簡単に答えが見つかります。 cvAnd も cvAbsDiff も基本的にはピクセルをループしてand 演算や引き算をするだけなので、今まで scottie さんが書いたことと大きく変わらないと思います。 その上で、自分でループを書くのであればループの数を減らす工夫ができると...
by みえ
3年前
フォーラム: C言語何でも質問掲示板
トピック: opencvで細線化
返信数: 4
閲覧数: 2086

Re: opencvで細線化

ところで、グレースケール化や 2 値化といった処理をループで書き下しているのはなぜですか? それぞれ cvCvtColor と cvThreshold で実現可能なので、もし使えるのであれば OpenCV の API に頼った方が楽だし安全だと思います。 使える API を使用し、また、不要な変数などを取り除いたコードはこちらです。ご参考までに。 #include <opencv2/imgproc/imgproc_c.h> #include <opencv2/highgui/highgui_c.h> void thinningIte(IplImage *Img_nichi, int patte...
by みえ
3年前
フォーラム: C言語何でも質問掲示板
トピック: opencvで細線化
返信数: 4
閲覧数: 2086

Re: opencvで細線化

書き換えとありますが、何のための書き換えなのでしょうか。とりあえず、「何らかの制限で C++ が使えないため、C 言語で書き直す必要がある」という想定で考えてみました。 下記に示すコードがもし scottie さんの要件に合わなければ教えてください。 41行目 void thinningのdo while をどう書き換えればいいのか教えてください v1~v9の書き換えはあってるのでしょうか こちらの質問にまず簡単に回答しますと、元ネタの「2値画像の細線化」で使われているabsdiff をcvAbsDiffに、そしてcountNonZero を cvCountNonZeroに置き換えればいいと思...
by みえ
3年前
フォーラム: C言語何でも質問掲示板
トピック: 誤差について
返信数: 3
閲覧数: 1052

Re: 誤差について

いい試みですね。円周率については簡単なものを自分で書いてみたことがあるのですが、ネイピア数を試したことはなかったです。 これ以上どう精度に対してどう対策をすればいいか、また、他の計算方法があれば教えてください。 以下のサイトによると、去年 e を 5 兆桁計算した人は e^1 のテイラー展開を使ったようなので、e そのものを計算するアルゴリズムとしては Math::exp1 も悪くなさそうです。 e http://www.numberworld.org/digits/E/ 収束が遅いアルゴリズムや、そもそも得たい結果が double の精度を超えていると double は使えません。このような...
by みえ
3年前
フォーラム: C言語何でも質問掲示板
トピック: C++で、class instanceのシリアライズ化に関して
返信数: 2
閲覧数: 709

Re: C++で、class instanceのシリアライズ化に関して

「某 class 」が何を保持しているか分からないと何とも答えにくいのですが、アプリケーションが完全に把握できるデータだけであれば十分実現可能なはずです。もし、別のアプリケーションや OS が作成したようなデータ (COM オブジェクトなど) が含まれていると、難しいと思います。 static 変数についても、プログラムの全体が分からないと何とも言えませんが、シリアライズ対象にしたいのであれば、static 変数ではなくクラスのメンバーとして持たせるのが自然だと思います。 自分でシリアライズの処理を実装されるのであれば、std::ostream あたりを使って各クラスのメンバーを書き出すような...
by みえ
3年前
フォーラム: C言語何でも質問掲示板
トピック: OpenCVのターゲート環境について
返信数: 3
閲覧数: 1506

Re: OpenCVのターゲート環境について

すみません、返信が遅くなりました。Windows 10 64bit + Visual Studio 2015 の環境で、OpenCV の動的リンクと静的リンクを両方試してみました。 以下に示す手順を試したときに作ったソリューションを GitHub にアップロードしましたので、こちらも参考になれば幸いです。私の環境のフォルダーパスがハードコードされているので、お手元の開発環境に合わせて変更する必要があります。 動的リンク: https://github.com/msmania/opencv-sandbox/tree/opencv-link-dynamic 静的リンク: https://githu...
by みえ
3年前
フォーラム: C言語何でも質問掲示板
トピック: 入力候補にヘッダファイルが表示されるのに、読み込むことができません
返信数: 12
閲覧数: 2130

Re: 入力候補にヘッダファイルが表示されるのに、読み込むことができません

検索すると似たような事例がいくつか出てきますね。ライブラリの構成を知らないので現象の発生原因はよく分かりませんが、以下の方法で直るかもしれません。 Does not compile for ESP8266 b/c of pgmspace.h · Issue #15 · jgillick/arduino-LEDFader https://github.com/jgillick/arduino-LEDFader/issues/15 → <avr/pgmspace.h> の代わりに <pgmspace.h> をインクルードしたら直ったようです。 "avr/pgmspace.h: No such fi...
by みえ
3年前
フォーラム: C言語何でも質問掲示板
トピック: CreateWindowsへのドラッグ&ドロップ(ファイルではない)
返信数: 3
閲覧数: 700

Re: CreateWindowsへのドラッグ&ドロップ(ファイルではない)

URL の情報が文字列として送られてくることが分かりましたので、以下のコードで、その文字列を MessageBox で表示することができました。 Win10 上の Chrome、Firefox、IE、Edge で動作確認済みです。 #include <windows.h> #include <atlbase.h> static WCHAR window_name[] = L"window.drag-n-drop"; const UINT WM_POPUPMSGBOX = WM_USER + 1; class CDropTarget : public IDropTarget { private:...
by みえ
3年前
フォーラム: C言語何でも質問掲示板
トピック: CreateWindowsへのドラッグ&ドロップ(ファイルではない)
返信数: 3
閲覧数: 700

Re: CreateWindowsへのドラッグ&ドロップ(ファイルではない)

ウィンドウに対してドラッグ & ドロップを有効にするコードは、以下のサイトが参考になると思います。 http://eternalwindows.jp/ole/oledrag/oledrag01.html ドラッグされてきたオブジェクトの情報が IDropTarget::DragEnter で取得できるので、そのときに何の種類のオブジェクトを許可して、カーソルを何に替えるか、などを決めることができます。 Web ブラウザーからのハイパーリンクの判別方法がちょっと難しいですね。↓ のページ等を参考にしたのですがちゃんと動いてくれないので、もうちょっと調べてみます。その間にどなたか別の方から回答があ...
by みえ
3年前
フォーラム: C言語何でも質問掲示板
トピック: OSに依存しないEthernet通信...(続)
返信数: 10
閲覧数: 1372

Re: OSに依存しないEthernet通信...(続)

前回のトピックの冒頭にあった、「シーケンス制御装置とデータや命令のやりとりをEthernet経由でやりたい」というのがvbんcvbnさんが実現したいことだと思うのですが、 こちらのトピックにも同様の説明、もしくはより詳しい内容を記載していただけると他の方もコメントしやすくなると思います。 1) 開発環境PCにboostをインストールしなければならないのは当然ですが、   ターゲットPCの実行環境にもboostをインストールしなければならないのでしょうか。 作成するプログラムに boost を統合する(static linking) こともできますし、共有ライブラリとして別に配布する (dyna...
by みえ
3年前
フォーラム: C言語何でも質問掲示板
トピック: OSに依存しないEthernet通信アプリケーション(C言語)
返信数: 6
閲覧数: 1325

Re: OSに依存しないEthernet通信アプリケーション(C言語)

正しいチュートリアルを参照されていますよ。このチュートリアルでは、13/tcp 及び 13/udp ポートを使う daytime プロトコルで会話するクライアントとサーバーをそれぞれ作成しています。 サーバー プログラムを実行すると、そのマシンの 13/tcp もしくは 13/udp ポートのリッスンを開始します。ポート番号はハードコードされています。 クライアント プログラムは、コマンド引数としてサーバーの宛先を受け取ります。上記サーバーを動かした状態で、そのサーバーの IP アドレスなりホスト名なりを指定してクライアントを実行すると、サーバー側で取得した時間の情報が Ethernet 経由...
by みえ
3年前
フォーラム: C言語何でも質問掲示板
トピック: [VS2015]vectorのウォッチ
返信数: 21
閲覧数: 3685

Re: [VS2015]vectorのウォッチ

なかなか難しいですね。私の方でも試しに空のプロパティシートを作ってプロジェクトに追加してみましたが、問題は起きませんでした。 チェックを入れようが入れまいが表示が変わらない、というのがそもそも奇妙ですね。 沖さんが言及されているようなレジストリの問題でなければ、何かの拍子に設定ファイルへの書き込み権限が失われて、ファイルが書き換えられなくなっているのかもしれません。ただこの場合、普通は Visual Studio 終了時にエラーが出るはずです。 あと考えられるのは、もし Microsoft アカウントで設定を同期している場合に、同期が上手くいっていないとかでしょうか。同期の機能を使った経験がな...
by みえ
3年前
フォーラム: C言語何でも質問掲示板
トピック: OSに依存しないEthernet通信アプリケーション(C言語)
返信数: 6
閲覧数: 1325

Re: OSに依存しないEthernet通信アプリケーション(C言語)

Boost.Asio は初めて聞きました。さすが Boost、とんでもない代物ですね。 [ 標準C言語仕様はOSに依存しないし、TCP/IP自体もOSに依存しないはずなので、少なくとも原理的的には可能かな。] 確かに TCP/IP プロトコルは OS 非依存ですが、そのプロトコルに基づいたパケット データを送受信するのはネットワーク カードで、そのデバイスを操作するためのドライバーを操作する方法が OS 依存になってしまい、OS 非依存の C 言語のコードというのは現時点では無理だと思います。 現実的には、C 言語以外の言語を選択するのが近道のように思えます。流行りでいえば Go 言語とかです...
by みえ
3年前
フォーラム: C言語何でも質問掲示板
トピック: OpenCVのターゲート環境について
返信数: 3
閲覧数: 1506

Re: OpenCVのターゲート環境について

OpenCV は共有ライブラリであり、静的リンクにも動的リンクにも対応しています。 静的リンクする場合、実行可能ファイルに OpenCV が含まれるため、サイズは大きくなりますが実行環境に OpenCV は不要になります。 動的リンクの場合は逆で、実行可能ファイルは小さくできますが、実行環境に OpenCV のランタイムが必要になります。 リンクの方法は開発プラットフォームによって異なります。 もし Windows で Visual Studio をお使いの場合は以下のページが参考になると思います。 How to build applications with OpenCV inside th...
by みえ
3年前
フォーラム: C言語何でも質問掲示板
トピック: [VS2015]vectorのウォッチ
返信数: 21
閲覧数: 3685

Re: [VS2015]vectorのウォッチ

[オプション] > [デバッグ] > [全般] > [オブジェクトの生の構造体を変数ウィンドウに表示する] にチェックが入っているのかもしれません。

[全般] ([オプション] ダイアログ ボックス - [デバッグ])
https://msdn.microsoft.com/ja-jp/library/85yzd16c.aspx

英語版で恐縮ですが、手元の Visual Studio 2015 の環境だと添付の画像のようになりました。
by みえ
3年前
フォーラム: C言語何でも質問掲示板
トピック: Windows10上でDirect3D11使用時に発生するリークについて
返信数: 7
閲覧数: 2802

Re: Windows10上でDirect3D11使用時に発生するリークについて

駄目でしたか・・不可解ですね。 私の環境では D3D_FEATURE_LEVEL_11_0 がサポートされていなかったので、代わりに D3D_FEATURE_LEVEL_10_0 を使っています。もしかするとD3D_FEATURE_LEVEL_11_0 ではリークが起きるのかもしれません。 これも可能性は低いですが、DirectX 側 のバグであることも考えられなくはないです。Win10 をお使いとのことですが、もし最新の累積パッチをインストールされていないようでしたら、インストールして結果を見ていただけますか。 直接的には、コード内で使われているオブジェクトのどれが解放されていないのかを地道...
by みえ
3年前
フォーラム: C言語何でも質問掲示板
トピック: お互い知らない複数のプロセスが同時に同じGPUにkernelを実行させようとしたら
返信数: 26
閲覧数: 4372

Re: お互い知らない複数のプロセスが同時に同じGPUにkernelを実行させようとしたら

シンプルながら興味深い質問ですね。私も勉強がてら少し検索してみたのですが、どうやら並列実行はされず、シリアライズされるみたいです。ただし、MPS というものを使うと実現できそうです。(MPS は Linux のみのサポートのようですが。) 以下のフォーラムを参考にしましたが、もしかすると最新のアーキテクチャではまた話が違うかもしれません。 試してみればすぐに分かりそうなのですが、試せる環境が手元にないため全て伝聞調で申し訳ないです。。 Concurrent execution of more than one CUDA application - NVIDIA Developer Forums...

詳細検索ページへ移動する