2016-10-16 4 views
1

cv2.imread(JPG_IMAGE_PATH)はMacとLinuxで異なる配列を提供します。cv2.imread()はMacとLinuxで異なる結果を表示します

理由は、here(注を参照)が原因である可能性があります。

MacとLinuxで同じ配列を取得する方法はありますか?

+2

損失の多いフォーマットを避けることがおそらく最良のアドバイスです。 –

+1

あなたは常に異なるライブラリを試して読むことができます。 [imageio](https://github.com/imageio/imageio)や[scikit-image](http://scikit-image.org/)内のioのlibと同様です。残念ながら私は彼らが各OSで同じように動作することを保証することはできません。ドキュメントの警告は私を狂わせるでしょう。このような一般的な画像フォーマットでは私が期待したものではありません。もう1つのアプローチは、[imagemagick](http://www.imagemagick.org/script/index.php)を使用してjpegをpngのようなロスレスフォーマットにデコードしてから進めます。あるいはもっと良い方法は、公式のjpeg-decoderを使って中間のbmpを作ることです。 – sascha

+0

@sascha skimage.io.imread()は、MacとUbuntuで同じ結果を出しました。しかし、私はそれがどんな種類の画像でもうまく動作するかどうかはまだ分かりません。 – kyon

答えて

0

あなたはopencv & libjpgをlinuxの両方のソースからビルドすることができます。& mac。 cmakeを使用すると、ソースコードからlibjpgをサポートするopencvをビルドすることができます。これがあなたに同じ結果を与えることを願っています。 libjpgソースの

cmake -DWITH_JPEG=ON -DBUILD_JPEG=OFF -DJPEG_INCLUDE_DIR=/path/to/libjepeg-turbo/include/ -DJPEG_LIBRARY=/path/to/libjpeg-turbo/lib/libjpeg.a /path/to/OpenCV 

ワン:link

は、現在、それは、これらのOSでlibjpgの異なるバージョンに異なる結果を与えています。

関連する問題