From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

NI製品ディスカッション

cancel
Showing results for 
Search instead for 
Did you mean: 

OpenCVの使い方

Solved!
Go to solution

こんにちは。

OpenCVのライブラリの使用について下記3点ご教授いただけると助かります。

C言語のことをほとんど理解せずに質問しています。

トンチンカンな質問でしたら、ご容赦ください。

 

①cvCreateImage

  

 例: IplImage* cvCreateImage( CvSize size, int depth, int channels );

 

 CvSizeは、C言語で言う「構造体」になっています。

    typedef struct CvSize

         {

             int width; ....幅

             int height; .....高さ

          } CvSize;

 

 この関数は、そもそもLabViewで使用することは可能でしょうか。

 ライブラリ関数呼び出しノードでの使用は可能でしょうか。

 可能だとしたら、構造体をどのように定義して引数として渡せば良いのでしょうか。

 

②cvLoadImage

  

 例: IplImage* cvLoadImage( const char* filename, int flags=CV_LOAD_IMAGE_COLOR );

 

 この関数は、そもそもLabViewで使用することは可能でしょうか。

 ライブラリ関数呼び出しノードでの使用は可能でしょうか。

 可能だとしたら、関数の戻り値をどのように定義すればよいでしょうか。

  タイプが「文字列」、形式が「C文字列ポインタ」、でしょうか。。。

 

 

③cvSaveImage

  

 例: int cvSaveImage( const char* filename, const CvArr* image );

 

  引数のCvArrは、②のIplImage(構造体)で良いと思うのですが、

  引数をどのように定義すれば良いでしょうか。

 

 

cvLoadImageでファイルをロードし、同じ画像をcvSaveImageで保存するような

サンプルプログラムなどあると、とても助かります。

 

ライブラリ関数呼び出しノードを使用する際の、

 「スレッド」、「呼び出し規約」の設定もどうすべきかよくわかりません。

 「C文字列ポインタ」「文字列ハンドル」「文字列ハンドルポインタ」等についても、使い分けがよくわかりません。

 OpenCvを使う上で必要な内容でしたら、合わせてご教授いただければ幸いです。

 

 

Message 1 of 4
(7,802 Views)
Solution
Accepted by topic author ITOB

いろいろ試して、OpenCVのライブラリが使えるようになりました。

何かの参考になればと思い、自問自答で回答します。 

 

 

OpenCVでは、

 dllの戻り値や引数が構造体へのポインタであることがあり、これを

 どう扱うかがポイントのようです。

 

 方法の1つとして;

 

  「ポインタ」そのものの型を整数だと考え、

    「構造体へのポインタ」は、整数(値)

    「構造体へのポインタへのポインタ」は、整数(値)へのポインタ

  として取り扱うことで、構造体自体を定義しなくても、dllが使用できます。

 

 

>cvLoadImageでファイルをロードし、同じ画像をcvSaveImageで保存

 

  については、以下のようなダイアグラムで実現できました。
  このほか、USBカメラからの動画表示等も、同じ考え方でできました。

 

  OpenCV_dll使用例.JPG

 

 

 

 

Message 2 of 4
(7,676 Views)

DLLのソースファイルをアップデートしていただけますか?

よろしくお願いいたします

0 Kudos
Message 3 of 4
(6,113 Views)

Guanghaoさん

 

こんにちは。

 

>DLLのソースファイルをアップデートしていただけますか?

  サンプルviということですか? だとすれば、

 

http://forums.ni.com/t5/NI%E8%A3%BD%E5%93%81%E3%83%87%E3%82%A3%E3%82%B9%E3%82%AB%E3%83%83%E3%82%B7%E...

 

 の、5番目の書き込みで、OpenCVを使用したサンプルviをアップしてあります。

 圧縮してありますので、すべてのファイルを同じフォルダに展開してから起動させてみてください。

 LabView8.6です。

 

 

DLLのソースファイルをアップデートしていただけますか?

 

0 Kudos
Message 4 of 4
(6,057 Views)