問題タブ [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.

0 投票する
1 に答える
678 参照

c# - edsdk c# pinvoke 関数 EdsCreateMemoryStream がスタックのバランスを崩しました

Canon EDSDK APIとEOSカメラで動作する小さな写真アプリを開発しています。古い dll (2014 年以降) と古いカメラ、Canon 1100D および 1200D では、すべて正常に動作しました。最近、後継モデルの1300Dを購入しました。もちろん古いdll(2014)は2016年以降の新型カメラを認識せず、接続できませんでした。

そこで、古い dll を置き換えました: EDSDK.dll と EdsImage.dll

Canon 1300Dで動作する、最後のCanon EOS Utility ver.3から取得した新しいものを使用します。

これで、カメラが認識され、メイン パネルに、接続されているカメラの名前、Canon EOS 1300D が表示されます。

しかし、dll を置き換えた後、カメラからライブ ビューを開始しようとすると、次の奇妙なエラー メッセージが表示されます。

PInvoke 関数 'testApp!EDSDKLib.EDSDK::EdsCreateMemoryStream' の呼び出しにより、スタックのバランスが崩れました。これは、マネージド PInvoke 署名がアンマネージド ターゲット シグネチャと一致しないことが原因である可能性があります。PInvoke シグネチャの呼び出し規約とパラメーターがターゲットのアンマネージド シグネチャと一致することを確認します

どんな助けにもとても感謝します。私はすでにこれで多くの時間を失いました。私にはもうアイデアがなく、どこで答えを探すべきかわかりません。

よろしくお願いします。

0 投票する
1 に答える
292 参照

java - Canon カメラがしばらくすると動かなくなる - 1200D EOS sdk java

Canon eos SDK 2.14 を使用して、ライブ ストリーミングと撮影を行っています。カメラはキャノン1200D

以下はカメラ設定です:

ライブストリーミングモード:有効

AFモード:フレキシ

以下はコードです

上記のコードには2つのメソッドがあります

  1. startCameraLive()
  2. onFaceCapture()

最初にライブ ビューを開始し、ダウンロードした画像を継続的に表示します。ユーザーがキャプチャ ボタンをクリックすると、2 番目の方法が実行されます。両方のメソッドは以下のように呼び出されます

このような2番目の方法

今問題::::

5 回または 6 回の反復の後、カメラが動かなくなり、何も機能しなくなります。すべてがフリーズし、アプリを閉じてアプリを再起動すると機能しません。作業を再開するには、カメラのプラグを抜くか、カメラのキャプチャ ボタンを手動で押す必要があります。

最初に有効に設定されているライブ ストリーミング モードは、自動的に無効になります。再度設定する必要があります。

startCameraLive() で ::: を設定しています。

camera.setFocusMode(Mode.AUTO);

camera.setLiveViewMode(true);

ただし、カメラが動かなくなると、ライブ ビュー モードが無効になります。

この問題を解決するにはどうすればよいでしょうか。また、この問題の根本的な原因を知りたいと考えています。例外はまったくありません:(

助けてください...

0 投票する
1 に答える
484 参照

c# - ライブグリーンスクリーン

Canon EOS SDK を使用しており、カメラ ストリームでライブ グリーンスクリーンを実現したいと考えています。

ピクセル操作を最適化した単純なグリーンスクリーン アルゴリズムがあります。

800x600 の写真の場合、私の i5 では約 300 ミリ秒かかります。もちろん、これはスムーズなライブストリームには十分な速度ではありません.

どのような最適化オプションがありますか? GPU関数を使用する機会はありますか? チャンスとは?Canon カメラで DirectShow を使用できません (ドライバーが存在しません)。

0 投票する
0 に答える
2738 参照

c++ - OpenCV を使用した Canon CR2 イメージのディベイヤー

私がやろうとしているのは、Canon Rebel T5 1200D で撮影した .cr2 RAW ファイルを読み取ることです。LibRaw と OpenCV を使用して画像を読み込んで表示することはできますが、Windows でファイルを開いたときよりも、画像が少し明るすぎて黄色がかっているように見えます。画像自体は投稿の下部にあります。同様の質問がいくつか寄せられています。

LibRaw を使用して CR2 画像を正しくデコードしますか?

OpenCV を使用して 12 ビット Bayer イメージを 8 ビット RGB に変換する

最初にすべてのコードを投稿してから、問題の詳細に入ります。

まず、LibRaw を使用して生の画像ファイルを開いて解凍しました。LibRaw の Web サイト http://www.libraw.org/docs/API-overview-eng.htmlのこの例

各ピクセルが実際の 4 つの ushort 値 [赤、緑 1、青、緑 2] であり、そのピクセルのベイヤー色を表す「画像」が残ることを示します。値を出力すると(次のコードを使用)

次の結果が得られます。

そのため、偶数行では Red と Green1 ピクセルが交互にゼロ以外の値を持ち、奇数行では Blue と Green2 ピクセルが交互にゼロ以外の値を持ちます。私はそれについて100%ではありませんが、値は12ビットのようです。

OpenCVのcvtColor関数の説明を見ると

http://docs.opencv.org/2.4/modules/imgproc/doc/miscellaneous_transformations.html#cvtcolor

cr2カラーフォーマットのいくつかのこの人の説明と同様に:

http://lclevy.free.fr/cr2/#interpol

「BG」の種類のベイヤー画像を取得したことを示しています (OpenCV ドキュメントで使用されている用語を使用します)。

したがって、その画像を cvtColor に渡すには、展開された生の画像から各ピクセル値を取得し、署名されていない short の連続した画像を作成する必要があります。// ピクセル idx を取得 int idx = y * width + x;

short の連続バッファー (vBayerData) を取得したら、opencv マットを作成し、CV_BayerBG2RGB を使用してデベイヤーします。

ただし、出力したピクセル値を見ると、値がおそらく 12 ビットであることがわかります (完全にはわかりませんが)。したがって、12 ビットの範囲から 16 ビットの範囲に移行する必要があると思います。値を 16 倍することになります。

結局のところ、ここに私が残した画像があります: OpenCV 出力

ただし、これが私の目に見えるものです(スケーリングについては申し訳ありません、色が重要です):

Windows での表示

ここにとても近づいているように感じますが、得られた画像は少し明るすぎて、色が少しずれています。私のカメラの設定は、sRGB 形式を使用して RAW 画像をエクスポートすることになっているため、画像強度に何らかのガンマ補正を適用すると役立つと確信していましたが、正しい画像を取得できないようです。

さまざまなベイヤー行列 (つまり RG)、さまざまなビット深度変換、ビット深度変換を行うときの再配置 (DeBayering の前後) を試しましたが、画像が正しく表示されるようには見えません。

この種の変色を認識する人はいますか?もしそうなら、彼らは私のコードでエラーを見つけるのを手伝ってくれますか?

読んでくれてありがとう、

ジョン

PS ここにはたくさんのテキストがあることは知っていますが、このような投稿に最適な形式が何であるかはわかりませんでした. 私が扱っているすべての情報を提供したかっただけです。

編集: Mark Ransom が以下で提案したように、これはホワイト バランスが正しくないためだと思います。私はデジタル カメラのカラー パイプラインの方向性を指摘されましたが、画像のデコードにはディベイヤー ステップだけではありません。

ウィキペディアの記事から:

典型的なコンポーネントには、イメージ センサー補正 (「デベイリング」またはベイヤー フィルターの適用を含む)、ノイズ リダクション、イメージ スケーリング、ガンマ補正、イメージ エンハンスメント、色空間変換 (RGB、YUV、YCbCr などのフォーマット間)、クロマ サブサンプリング、フレームレート変換、画像圧縮/ビデオ圧縮 (JPEG など)、およびコンピューターのデータ保存/データ転送。

0 投票する
1 に答える
307 参照

c++ - Canon EDSDK の 30 分以上の記録

私は Canon カメラを持っており、Canon の EDSDK を使用してライブ ビデオを PC にレンダリングしています。DSLR は 30 分以上録画できないことはわかっていますが、SDK を使用してカメラがその 30 分の壁を破ることができるようにする方法はありますか?