19

Python を使用していくつかの基本的なマシン ビジョン タスクを実行したいと考えており、作業を開始するのに役立つチュートリアルがどこにあるかを知りたいです。

私の知る限り、マシン ビジョンを実行する Python の無料ライブラリはPyCV (明らかにOpenCVのラッパー) だけですが、適切なチュートリアルが見つかりません。

私の主なタスクは、FireWire から画像を取得することです。イメージをさまざまな領域にセグメント化します。次に、各領域で統計を実行して、ピクセル領域と重心を決定します。

以前は、Matlab のImage Processing Toolboxを問題なく使用していました。Python で同等のものを見つけたい関数は、 graythreshregionprops、およびgray2indです。

ありがとう!

4

7 に答える 7

13

OpenCV はおそらくライブラリの最善の策です。それらのラッパーを選択できます。標準の OpenCV インストールに付属する SWIG ラッパーを調べましたが、メモリ管理がよりクリーンに見えたため、ctypes-opencvを使用することになりました。

どちらも C コードの非常に薄いラッパーであるため、見つけられる C リファレンスはすべて Python に適用できます。

OpenCV は巨大であり、特に十分に文書化されているわけではありませんが、サンプル ディレクトリに含まれている適切なサンプルがいくつかあり、それを使用して開始できます。検索可能な OpenCV API リファレンスはこちらです。

あなたが探しているのがオンライン ソースか印刷ソースかについては言及されていませんでしたが、私はO'Reillyの本を持っていて、とても良いものです (例は C ですが、簡単に翻訳できます)。

FindContours関数は、 regionpropsに少し似ています。接続されたコンポーネントのリストが表示され、それを調べて情報を取得できます。

しきい値処理については、 Thresholdを試すことができます。大津の方法を使用するためにフラグを渡すことができると確信していましたが、そこのドキュメントには記載されていないようです。

gray2ind に対応する特定の関数に遭遇したことはありませんが、そこにある可能性があります。

于 2009-05-30T18:48:31.080 に答える
7

ドキュメンテーション: 数年前、私は Python 用にラップされた OpenCV をかなり多く使用しました。OpenCV は広範囲に文書化されており、多くの例が付属しており、さえあります。私が使用していた Python ラッパーは十分に薄いため、ラッパー固有のドキュメントはほとんど必要ありませんでした (これは他の多くのラップされたライブラリで一般的です)。PyCV の単体テストなどの例を数分間見て、必要な OpenCV のドキュメントに集中できると思います。

分析: OpenCV よりも優れたライブラリがあるかどうかについては、かなり高度なこと (オブジェクト トラッキングなど) を行いたい場合は OpenCV が優れているという私のやや時代遅れの意見ですが、ニーズに対してはやり過ぎかもしれません。いくつかの基本的な numpy 配列操作と組み合わせたscipy ndimageで十分なようです。

取得: 私が知っている取得のオプションは、OpenCV、Motmot、または ctypes を使用してドライバーに直接接続することです。このうちMotmotはインストールに苦労したので使ったことはありません。詳細は覚えていませんが、私が見つけた他の方法はかなり簡単でした (これは良いことで、簡単だったということです)。

于 2009-05-30T18:34:25.150 に答える
4

このテーマに関するウェブサイトを開始しました: pythonvision.org。いくつかのチュートリアル、&c、およびソフトウェアへのリンクがあります。より多くのリンクとチュートリアルがあります。

于 2010-09-12T19:33:17.247 に答える
2

You probably would be well served by SciPy. Here is the introductory tutorial for SciPy. It has a lot of similarities to Matlab. Especially the included matplotlib package, which is explicitly made to emulate the Matlab plotting functions. I don't believe SciPy has equivalents for the functions you mentioned. There are some things which are similar. For example, threshold is a very simple version of graythresh. It doesn't implement "Otsu's" method, it just does a simple threshold, but that might be close enough.

I'm sorry that I don't know of any tutorials which are closer to the task you described. But if you are accustomed to Matlab, and you want to do this in Python, SciPy is a good starting point.

于 2009-05-20T18:39:16.517 に答える
0

.NETとIronPythonを使用してFWカメラから画像を取得しました。CPythonでは、グラブのライブラリサポートが見つからない限り、ctypesライブラリをチェックアウトします。

于 2009-05-30T17:20:31.770 に答える
0

このパッケージMotmotや OpenCV との比較についてはよくわかりませんが、そこから 1 つまたは 2 つのクラスをインポートして使用しました。画像処理の多くは numpy 配列を介して行われ、ニーズを満たすために Matlab を使用した方法と十分に似ている場合があります。

于 2009-05-20T11:33:41.447 に答える