我想在Python中使用OpenCV將CV_64FC1
類型的圖像轉換爲CV_8UC1
。將圖像從CV_64F轉換爲CV_8U
在C++中,使用convertTo
功能,我們可以使用下面的代碼片段很容易地轉換圖像類型:
image.convertTo(image, CV_8UC1);
我已經搜索在互聯網上,但無法找到沒有錯誤的任何解決方案。 Python OpenCV中的任何函數將其轉換?
我想在Python中使用OpenCV將CV_64FC1
類型的圖像轉換爲CV_8UC1
。將圖像從CV_64F轉換爲CV_8U
在C++中,使用convertTo
功能,我們可以使用下面的代碼片段很容易地轉換圖像類型:
image.convertTo(image, CV_8UC1);
我已經搜索在互聯網上,但無法找到沒有錯誤的任何解決方案。 Python OpenCV中的任何函數將其轉換?
您可以將其轉換爲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數組。我還沒有測試過它。請測試它並讓我知道結果。
我面臨類似的問題,當我試圖將圖像64F轉換爲CV_U8時,我會以黑屏結束。
這link將幫助您瞭解數據類型和轉換。以下是適合我的代碼。
from skimage import img_as_ubyte
cv_image = img_as_ubyte(any_skimage_image)
你看過[''cv2.cvtColor'](http://docs.opencv.org/2.4/modules/imgproc/doc/miscellaneous_transformations.html)嗎? –
我認爲cv2.cvtColor用於顏色空間轉換。我也可以使用它來轉換圖像類型嗎? – Jazz
[numpy uint8像素包裝解決方案]的可能重複(https://stackoverflow.com/questions/7547557/numpy-uint8-pixel-wrapping-solution) – rayryeng