当前位置: 代码迷 >> 综合 >> opencv c++
  详细解决方案

opencv c++

热度:58   发布时间:2024-01-29 14:55:14.0

读取图像使用imread()函数,

Mat image = imread("demo.jpg",IMREAD_COLOR);

在读取时,还能够自行选择图像的读取格式,常用的有灰度图像:IMREAD_GRAYSCALE和RGB图像:IMREAD_COLOR。

Mat是Opencv经过高度优化的数据结构,它自带了内存管理,可以通过检测引用数来释放不需要的内存。同时它的赋值操作也分为浅赋值和深复制,浅赋值能够不必复制大量的数据,从而提高程序的性能,最好只在需要深复制时在进行深复制。

在赋值或者初始化时,使用的是浅赋值,这样变量的指针指向的是同一个数据。

cv::Mat image2(image1);
image3 = image2;
image1,image2,image3指向的都是内存中同一块数据,所以只要修改其中一个任意一个变量,其他的都会改变。

而在进行深赋值时,需要使用函数copyTo(),或者clone(),这样复制出来的就是两个不同的内存数据块,这样就可以随意修改数据也不会影响其他的了。

 

 

保存图像使用imwrite(),

展示图像使用imshow()