問題タブ [canon-sdk]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - Canon SDK: 2 台のデバイスで撮影した最新の写真をダウンロードしてホストする
Visual Studio 2010 で Windows ベースのアプリケーションを作成しています。ホスト PC は 2 台の Canon EOS 600D に接続されています。これまでのところ、私は 2 枚の写真を撮り、それを (SD カードなしで) ホスト PC に直接ダウンロードし、その写真を特定の名前でホストに保存しました。コードをループで実行すると、正常に動作します (ループのインデックスはカメラと宛先ファイルを指定します)。次のステップでは、OpenMP2.0 を使用してループを高速化しました (これは OpenMP を使用した最初のプロジェクトです)。写真は同時に撮影されますが、残念ながら両方の写真は、各タスクの対応するメッセージ ループではなく、同じメッセージ ループ (カメラ 0 またはカメラ 1) によって処理されます。その結果、カメラ バッファからの画像は同じファイルに保存されます。
誰かがこの問題を取り除く方法を知っていれば、それは素晴らしいことです. 私の観点からの最も好ましい解決策は、どのスレッド/カメラから写真が撮影されたかをメッセージ ループに伝えることです (1 つで十分であることがわかったため)。Mutex を使用するとアルゴリズムが遅くなるため、Mutex の使用を避けることができれば、それも素晴らしいことです。
これまでのところ、これは私のイベント ハンドラーです。動作しますが、threadNo を見つける必要があります。
そして私の主な機能
前もって感謝します。
編集1: Windowsメッセージループを無効にすると(引用する)、プログラムが次の動作を示すことがわかりました。
1 回目の実行: 2 枚の写真を撮る
2 回目の実行: 前の実行から 2 つの写真をダウンロードし、2 つの新しい写真を撮ります。
そのため、スレッド番号とメッセージは何らかの方法で保存され、実行後も存続し、次の実行時にリロードされるようです (メイン ウィンドウが破棄されているかどうかは関係ありません)。だから、正しい順序でそれを取得する必要があります。
編集 2:適切に動作するように見える解決策を見つけました。kEdsPropID_BodyIDEx
カメラ本体のシリアル番号で解決しましたが、Canon EDSDK Version 2.12 で機能が無効になっているため、Canon EDSDK Version 2.11.3 に戻す必要がありました。これが他のユーザーが同様のタスクを解決するのに役立つことを願っています.
乾杯TL
canon-sdk - edsDownload での Canon SDK 内部エラー
EdsDownload で内部エラーが発生しました。SDカードなしでEOS 1100Dを使用しています。Canon サンプルコード (CameraContorol) は、画像をダウンロードできます。使用された SDK: 2.13 と 2.12 (両方で同じ問題があります)。私を助けてください。
注: 実行後、「picture000x.jpg」のサイズは 0 です (EdsCreateFileStream 呼び出しのため)。
私のコード出力:
デバイス名: Canon EOS 1100D。
画像を取得:
「Call」handleObjectEvent。
イベント: kEdsStateEvent_JobStatusChanged、
イベント コード: 770
EdsDownload での内部エラー。
stream != NULL
ダウンロード終了。
キーを押して終了します。
私のコード:
handleSateEvent:
handleObjectEvent:
主な機能:
DownloadImage 関数:
c# - 画像処理の Canon SDK の例
cr2 ファイルを表示するために、ac# または VB.NET プログラムで canon EDSDK を使用したいと考えています。
カメラの制御方法に関するサンプルコードを見つけました - 例:
https://github.com/esskar/Canon.Eos.Framework
しかし、ファイルを開いたり、画像データを抽出して表示したり、親指やフルサイズの画像をjpgとして保存したりすることについては何もありません...
誰かが私にそのような例を教えてもらえますか? ありがとうございました。
注 - 私は EDSDK 2.12 を持っています。古いバージョンも役立つことを願っています。
編集: 提案していただきありがとうございます。それは役立つかもしれない C ライブラリを指しています...方法はわかりませんが、ドットネットでどのように使用できるかわかりません。
windows-runtime - Canon カメラ セッションを開くときのエラー EDS_ERR_DEVICE_NOT_FOUND ( EdsOpenSession(cRef))
Canon カメラを制御できる Windows 8 メトロ アプリケーションを開発しています。このアプリケーションはカメラを検出し、デバイス情報も取得します。しかし、カメラ セッション "err = EdsOpenSession(cRef)" を開くと、"EDS_ERR_DEVICE_NOT_FOUND" エラーが発生します。
しかし、以下の関数を呼び出すと、カメラが検出されました-
ここに私の完全な初期化コードがあります -
WPF アプリケーションで同じコードを試してみたところ、うまくいきました。
c++ - Canon EDSDK 2.12 で撮影した写真のプロパティを設定/取得する方法は?
私は C++ プログラミングの初心者で、Canon EDSDK 2.12 を使用して EOS 600D DSLR をリモート コントロールし始めています。ここのコードを使用して、カメラにアクセスして1枚の写真を撮る方法をよりよく理解しましたが、問題なく動作しますが、SDKの可能性を理解できないため、プログラムを続行する方法がわかりませんプログラミング リファレンス。
カメラのSDに保存した写真に、名前をつけて保存することはできますか?
そうでない場合
イベント ハンドラーを作成するにはどうすればよいですか? 写真が撮影されるたびに、SD 上のイメージ パス (一意の ID としてのフォルダーとイメージ名) で構成される文字列を取得し、それを使用して他のタスクを実行したいと考えています。
これが私がやりたいことを理解するのに役立つことを願っています。
c++ - EDSDK からキャノン カメラを制御する C++
こんにちは、C ++でusb経由でキヤノンカメラをテスト制御しようとしています(最終的にはlabviewで使用したいです)。他の機能を使用する前にカメラを初期化しようとしています。まず、canon SDK で提供されている lib および dll ファイルを持っていますが、未解決の外部エラーが発生するため、それらを正しく含めたとは思いません
私はC ++にかなり慣れていないので、自分が何をしているのかよくわかりません。この初期化を機能させる方法について何か提案はありますか? また、lib ファイルと dll ファイルを正しく含める方法についても教えてください。以下は私が書いたコードです。
c++ - キヤノンSDK. カメラから写真を撮る
Canon EOS D600 カメラを持っています。C++ を使用して写真を撮る必要があります。ドキュメンテーションは私を助けませんでした。写真を撮るサンプルコードはありますか?これは役に立ちません:
エラーが発生しました: [リンカ エラー] ` imp _EdsInitializeSDK@0'への未定義の参照
助けてください
c++ - イベント ハンドラ Canon SDK 2.12 からのコールバックなし
Canon EOS 600D で写真を撮るための簡単なコンソール プログラムを作成しました。今のところ問題なく動作していますが、
- 写真が撮られたときにイベントを取得する
- それがイベントの原因となった新しい画像であった場合、ファイルオブジェクトとして取得して、ファイル名などのプロパティにアクセスしたいと思います
イベント ハンドラーは初期化されますが、写真を撮ったときにイベント/コールバックを受け取りません。
Windows 64ビットで作業している場合に問題になる可能性があることを他のスレッドで読みましたが、現在、ほぼすべてのシステムが64ビットです。それは本当に問題ですか?
これが私がこれまでに持っているコードです:
助けてくれてありがとう!
敬具、リチャード