Hi all i wonder to know that is there a way to convert gpumat to cuda data type and vice versa.
Opencv mat type conversion.
It is more efficient than manually converting the pixels to the qimage but you have to keep the original cv mat image in memory.
Your input video can be encoded in a variety of colour spaces and memory layouts and ffmpeg has all the information needed to do the best conversion.
The second thing to notice is the switch statement in the cv mat to qimage conversion cvmattoqimage because both opencv and qt provide multiple data.
Opencv s native colour space bgr is known to ffmpeg and if you allocate you own mat then the memory layout is continuous.
The first thing to note is that the cv mat to qpixmap conversion cvmattoqpixmap at the bottom of this section simply relies on cvmattoqimage and uses qt s qpixmap fromimage to return a qpixmap so that s pretty straightforward.
Anyone who knows how to deal with the p.
I want to read the image by opencv and i faced the problem to transform the type of cv mat to matrix rgb pixel.
To convert from cv mat to qimage you could try to use the qimage uchar data int width int height format format constructor as follows mat is a cv mat.
While mat is sufficient in most cases mat can be more convenient if you use a lot of element access operations and if you know matrix type at the compilation time.
The colour conversion is done by ffmpeg rather than by opencv.
The reason is i want to write my own kernel outside cv gpu modules.
Say i have gpumat 512 512 cv 32fc2 and i want to convert it to float2 which has 512 512 elements.
It seems that the smart pointer could work in this case.