It passes the number of dimensions 1 to the mat constructor but the created array will be 2 dimensional with the number of columns set to 1.
Copy cv mat.
I am novice in opencv.
It is more efficient than manually converting the pixels to the qimage but you have to keep the original cv mat image in memory.
Recently i have troubles finding opencv functions to convert from mat to array.
Qimage img uchar mat data mat cols mat rows qimage format rgb32.
I researched with ptr and at methods available in opencv apis but i could not get proper d.
The weird thing is that most of times it works correctly.
According to the documentation if i return a cv mat it ll have no use because after the function returns the local copy of the cv mat in that function will be destroyed and therefore the one accepting the returned value outside the function should be pointing to some random address.
Mat copyto is for when you already have a destination cv mat that may be or is already allocated with the right data size.
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.
Mat clone is a convenience for when you know you have to allocate a new cv mat.
Use a copy constructor or assignment operator where there can be an array or expression on the right side see below.
Note don t forget to delete cv mat cv matvector and r the mat you get from matvector when you don t want to use them any more.