Преобразовать массив NumPy в cvMat cv2

С OpenCV 2, IPython теперь использует массивы NumPy по умолчанию.

cvimage = cv2.imread("image.png") #using OpenCV 2 type(cvimage) Out: numpy.ndarray #dtype is uint8 pltimage = plt.imread("image.png") #using Matplotlib type(pltimage) Out: numpy.ndarray #dtype is float plt.imshow(cvimage) # works great cv2.imshow(cvimage) TypeError: Required argument 'mat' (pos 2) not found 

Поскольку cv2 использует массивы NumPy по умолчанию, больше нет конструктора cv :: Mat и NumPy не имеет функций для преобразования в массив cv::Mat .

Есть идеи?

  • Как я могу развиваться против OAuth на местном уровне?
  • не может изменить шрифт на Helvetica в Matplotlib в Python на Mac OS X 10.6
  • Есть ли причина выбирать __new__ над __init__ при определении метакласса?
  • Отфильтровать HTML-теги и разрешать объекты в python
  • Эффективно переиндексировать один уровень с помощью «форвардной заливки» в мультииндексе данных
  • Truncate Python DateTime
  • Ошибка импорта в twilio
  • получить список столбцов данных pandas на основе типа данных
  • 3 Solutions collect form web for “Преобразовать массив NumPy в cvMat cv2”

    Функция имеет следующую docstring: imshow(winname, mat) -> None . Вы можете увидеть строку doc, введя cv2.imshow.__doc__ в интерпретаторе.

    Попробуйте cv2.imshow('Image', cvimage) .

    Вопрос технически спрашивает, как преобразовать массив NumPy (аналогичный массиву CV2) в объект Mat (CV). Для всех, кто заинтересован, это можно сделать:

     mat_array = cv.fromarray(numpy_array) 

    где mat_array – объект Mat, а numpy_array – массив или изображение NumPy. Я хотел бы предлагать избегать старых структур CV, где это возможно. Массовые массивы имеют гораздо лучшую производительность, чем реализация на родном Python

    Объект Mat был необходим, потому что на C / C ++ отсутствовала стандартная / нативная реализация матриц.

    Однако array numpy является идеальной заменой для этой функции. Следовательно, модуль cv2 принимает numpy.array s везде, где в документах указывается матрица.

    Python - лучший язык программирования в мире.