web-dev-qa-db-ja.com

画像をCV_64FからCV_8Uに変換します

OpenCVを使用して、Python)のCV_64FC1タイプの画像をCV_8UC1に変換したい。

C++では、convertTo関数を使用して、次のコードスニペットを使用して画像タイプを簡単に変換できます。

image.convertTo(image, CV_8UC1);

インターネットで検索しましたが、エラーなしで解決策を見つけることができません。 Python OpenCVでこれを変換する関数はありますか?

9
Jazz

これをNumpy配列に変換できます。

import numpy as np

# Convert source image to unsigned 8 bit integer Numpy array
arr = np.uint8(image)

# Width and height
h, w = arr.shape

OpenCV Python APIはNumpy配列も受け入れます。私はそれをテストしていません。テストして結果を教えてください。

15
frogatto

同様の問題に直面し、画像64FをCV_U8に変換しようとすると、黒い画面が表示されました。

この link は、データ型と変換を理解するのに役立ちます。以下は私のために働いたコードです。

from skimage import img_as_ubyte
cv_image = img_as_ubyte(any_skimage_image)
2