it-roy-ru.com

конвертировать изображение из CV_64F в CV_8U

Я хочу преобразовать изображение типа CV_64FC1 в CV_8UC1 в Python, используя OpenCV.

В C++, используя функцию convertTo, мы можем легко преобразовать тип изображения, используя следующий фрагмент кода:

image.convertTo(image, CV_8UC1);

Я искал в Интернете, но не смог найти решение без ошибок. Любая функция в Python OpenCV, чтобы преобразовать это?

5
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

Похоже, что API-интерфейсы OpenCV Python также принимают массивы Numpy. Я не проверял это все же. Пожалуйста, проверьте это и дайте мне знать результат.

10
Hi I'm Frogatto

Я столкнулся с подобной проблемой, и когда я пытался преобразовать изображение 64F в CV_U8, я получал черный экран.

Эта ссылка поможет вам понять типы данных и конверсию. Ниже приведен код, который работал для меня.

from skimage import img_as_ubyte
cv_image = img_as_ubyte(any_skimage_image)
1
Prathap Narayanappa