close

[Solved] TypeError: Expected cv::UMat for argument ‘src’

Hello Guys, How are you all? Hope You all Are Fine. Today I am just using openCV but I am facing following error TypeError: Expected cv::UMat for argument ‘src’ in python. So Here I am Explain to you all the possible solutions here.

Without wasting your time, Let’s start This Article to Solve This Error.

How TypeError: Expected cv::UMat for argument ‘src’ Error Occurs ?

I am just using openCV and Here is my code.

grayCol = cv2.cvtColor(imgUMat, cv2.COLOR_RGB2GRAY)

But I am facing following error.

TypeError: Expected cv::UMat for argument 'src'

How To Solve TypeError: Expected cv::UMat for argument ‘src’ Error ?

  1. How To Solve TypeError: Expected cv::UMat for argument ‘src’ Error ?

    To Solve TypeError: Expected cv::UMat for argument ‘src’ Error cv2.cvtColor’s First argument is src and you can t directly Use it. So that you need to use np.float32() something like this. grayCol = cv2.cvtColor(np.float32(imgUMat), cv2.COLOR_RGB2GRAY). Second solution is cv2.Umat() and np.float32() Both are functionally equivalent. UMat is a part of the Transparent API (TAPI) than help to write one code for the CPU and OpenCL implementations. So just Use cv2.Umat().

  2. TypeError: Expected cv::UMat for argument ‘src’

    To Solve TypeError: Expected cv::UMat for argument ‘src’ Error cv2.cvtColor’s First argument is src and you can t directly Use it. So that you need to use np.float32() something like this. grayCol = cv2.cvtColor(np.float32(imgUMat), cv2.COLOR_RGB2GRAY). Second solution is cv2.Umat() and np.float32() Both are functionally equivalent. UMat is a part of the Transparent API (TAPI) than help to write one code for the CPU and OpenCL implementations. So just Use cv2.Umat().

Solution 1: Use np.float32()

cv2.cvtColor’s First argument is src and you can t directly Use it. So that you need to use np.float32() something like this.

grayCol = cv2.cvtColor(np.float32(imgUMat), cv2.COLOR_RGB2GRAY)

Solution 2: Use cv2.Umat()

cv2.Umat() and np.float32() Both are functionally equivalent. UMat is a part of the Transparent API (TAPI) than help to write one code for the CPU and OpenCL implementations. So just Use cv2.Umat().

grayCol = cv2.cvtColor(np.float32(imgUMat), cv2.COLOR_RGB2GRAY)

Solution 3: Use numpy

You can use numpy too. Here is how.

import numpy as np 
image = np.array(image)

Summary

It’s all About this issue. Hope all solution helped you a lot. Comment below Your thoughts and your queries. Also, Comment below which solution worked for you?

Also, Read

Leave a Comment