NI製品ディスカッション

cancel
Showing results for 
Search instead for 
Did you mean: 

OpenCVをLabVIEWで使用する

お世話になっております。

画像解析にOpenCVを使用したいと考えているのですが、これをLabVIEW上で関数を読み込むにはどのような手順が必要でしょうか。

インターフェイスにLabVIEWを使用し、解析部分等をOpenCVを使用するプログラム、というものを考えております。

CのDLLを読み込むのと同じ手順でもいいのか、それとも異なる手段があるのか。

それと、インクルード等のパス位置を(C++等では)決定しますが、このような設定手順をLabVIEWでも必要とするのでしょうか。

お聞かせ願えれば幸いです。

以上宜しくお願い致します。

0 Kudos
Message 1 of 6
(7,572 Views)

5343Eddy 様

平素より弊社製品をご使用いただき誠に有難うございます。
日本ナショナルインスツルメンツ技術部の星と申します。
宜しくお願いします。

DLLを読み込んで行うことも可能ですが、OpenCV関数を呼び出す場合はDLLラッパーを使うことをお勧めします。

下記リンクに例もございますので参考までにご参照ください。

 

Using OpenCV library in LabVIEW

http://forums.ni.com/ni/board/message?board.id=200&message.id=16712&requireLogin=False

 

上記内容に関しましてご不明な点等ございましたら再度ご連絡願います。
宜しくお願いします。

日本ナショナルインスツルメンツ株式会社
星 大輝

Message 2 of 6
(7,536 Views)

OpenCVのdllの作成方法を詳しく教えていただけませんか

たとえば、vc++プロジェクトには何か設定が必要ですか

 

インクルードとか

よろしくお願いします。

0 Kudos
Message 3 of 6
(6,362 Views)

walxhy 様

 

平素より弊社製品をご使用いただき誠に有難うございます。

日本ナショナルインスツルメンツ技術部の星と申します。

 

上記リンクの事例にサンプルがございまして、インクルードなどについても記載がありますが参考にならないでしょうか。

LabVIEWはあくまでもDLLを呼び出すための関数を提供しているので、

OpenCV用のDLLの作成方法については大変恐縮ですが専門外となってしまうのですが、

LabVIEWで使用するためのDLLの作成方法については以下のような資料がございます。

リンク先では英語になりますことご了承ください。

 

Building a DLL with Visual C++

http://zone.ni.com/devzone/cda/tut/p/id/3056

 

また、下記のような事例もございますので参考までにご参照ください。

 

OpenCVの使い方

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...

 

宜しくお願いします。

 

日本ナショナルインスツルメンツ株式会社

星 大輝

Message 4 of 6
(6,348 Views)

こんにちは。

 

OpenCV110を使用した例を添付します。

 

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...

にも記載しましたが、ポインタを整数として取り扱うと、「ライブラリ関数呼び出しノード」でいろいろなライブラリが使用できるようになります。

 

ただ、引き数や戻り値に構造体もつdllは、うまく使えません。

構造体を取り扱う場合、ラッパーdllを作成する必要があります。

dllの作り方は、下記ページが参考になります。

http://zone.ni.com/devzone/cda/tut/p/id/12339

 

注意ですが、このなかで、ヘッダファイルの中身の

 

BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD,LPVOID);
....

 

BOOL WINAPI DllMain(HANDLE hModule,DWORD,LPVOID);
...

と直す必要があります。

Message 5 of 6
(6,310 Views)

追伸です。

 

>それと、インクルード等のパス位置を(C++等では)決定しますが、このような設定手順をLabVIEWで​も必要とするのでしょうか。

 ライブラリ関数呼び出しノードで、直接dllのパスを指定すればOKです。

 

 

>vc++プロジェクトには何か設定が必要ですか

 おっしゃる通り、OpenCVライブラリのパスを通す必要はありますね。 

 VC++でOpenCVを使用する環境を整えればOKです。

 VC++とOpenCVとの組み合わせは一般的ですので、設定方法はWebで簡単に見つかるかと思います。

 参考書もたくさん出版されていますので、参考にされてはいかがでしょうか。

Message 6 of 6
(6,307 Views)