5

最近、Python で多くのビジョン関連の作業を行う必要があり、フォーマットを切り替えるのに多くの困難に直面しています。Mahotas を使用して画像を読み取ると、両方とも numpy.ndarray を使用しているにもかかわらず、cv2 に変換できないようです。SimpleCV は OpenCV イメージを簡単に取得できますが、レガシー cv または mahotas 用に SimpleCV イメージを取得するのはかなりの作業のようです。

いくつかのフォーマット変換構文は本当にありがたいです。たとえば、mahotas を使用してグレースケール画像を開くと、デフォルトで浮動小数点色空間として処理されます。型を numpy.uint8 として割り当てても、cv2 はそれを配列として認識できないようです。この問題を解決する方法がわかりません。カラー画像もあまり運がありません。Ubuntu Oneiric Ocelot で Python 2.7 32 ビットを使用しています。

前もって感謝します!

4

2 に答える 2

2

私はマホタを使ったことがありません。しかし、私は現在 SimpleCV に取り組んでいます。SimpleCV numpy 配列を cv2 と互換性を持たせるためのプル リクエストを送信しました。

だから基本的に、

Image.getNumpy() -> cv2 の numpy.ndarray

Image.getBitmap() -> cv2.cv.iplimage

Image.getMatrix() -> cv2.cv.cvmat

cv2 numpy 配列を SimpleCV Image オブジェクトに変換するには、

画像(cv2_image) -> SimpleCV.ImageClass.Image

于 2012-07-10T11:59:30.763 に答える
2

cv2 と SimpleCV の経験しかない場合、SimpleCV から cv2 に変換するには:

cv2_image = simplecv_image.getNumpyCv2()

cv2 から SimpleCV に変換するには:

simplecv_image = Image(cv2_image.transpose(1, 0, 2)[:, :, ::-1])
于 2017-01-26T21:40:09.357 に答える