Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to convert cv2.Mat() to cv2.UMat() #1030

Open
JV-X opened this issue Sep 19, 2024 · 4 comments
Open

How to convert cv2.Mat() to cv2.UMat() #1030

JV-X opened this issue Sep 19, 2024 · 4 comments

Comments

@JV-X
Copy link

JV-X commented Sep 19, 2024

Hello, I am trying to write some glue code for a third-party library.
In the code, I need to return a data of type cv2.UMat.
Now I can use cv2.Mat(descs) to get a Mat, but I can't find a way to convert cv2.Mat to cv2.UMat.
I tried umat = cv.UMat(mat), mat.copyTo(umat), umat = cv.UMat(descs.shape[0], descs.shape[1], descs.dtype, cv.USAGE_DEFAULT), but none of them worked.
I found on the Internet that there seems to be such a method in C to convert Mat to UMat, but I can't seem to find it in Python.
Can you give some suggestions?

@wuyiulin
Copy link

wuyiulin commented Sep 20, 2024

use

umat = cv2.UMat(mat)

it works for me in OpcnCV 3.4.18.

@JV-X
Copy link
Author

JV-X commented Sep 20, 2024

use

umat = cv2.UMat(mat)

it works for me in OpcnCV 3.4.18.

For project reasons, it seems I can't use another version of opencv, but still thanks so much for your reply.

my environment is as follows:

The environment is Windows 11 version

  1. The latest opencv-python version installed is "4.10.0.84"
  2. Opencv should be the opencv_videoio_ffmpeg4100_64.dll that comes with the opencv-python package Lib\site-packages\cv2. Opencv is not installed separately on this machine
    In this environment, UMat (mat) conversion is not successful

@advait-zx
Copy link

You can use umat = mat.getUMat check if it works?

@JV-X
Copy link
Author

JV-X commented Sep 24, 2024

You can use umat = mat.getUMat check if it works?

I tried it, but mat doesn't have the method getUMat, the error message as below:

AttributeError (note: full exception trace is shown but execution is paused at: _run_module_as_main)
'Mat' object has no attribute 'getUMat'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants