opencv之Mat 类赋值的理解
来源:互联网 发布:nico sm是什么软件 编辑:程序博客网 时间:2024/05/20 18:55
今天看opencv技术手册中的Mat类:
看到这儿的时候出现了很大的疑惑:
Their headers are different, however, and
making a modification using any of them will affect all the other ones as well.
举个例子:
Mat image;//定义一个Mat 类 的对象image
Mat A;//定义一个Mat 类 的对象A
A=image;//将image赋值给A
现在如果修改A 那么image 里面的内容也会被修改.
经过实践验证,上面的说法是正确的。那么问题来了,如果你只想修改A而不想修改原始图像怎么办了?
经过实践验证,下面的代码是可行的:
Mat image;//定义一个Mat 类 的对象image
Mat A;//定义一个Mat 类 的对象A
A=image+0;//将image赋值给A
在赋值的时候后面加0就可以了。
下面是验证的整体程序:
// opencv_test.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <opencv2/core/core.hpp>#include <opencv2/highgui/highgui.hpp>#include <iostream>#include <string>using namespace cv;using namespace std;int _tmain(int argc, _TCHAR* argv[]){string imageName("nnnbb.bmp"); // 赋值图像的名称//string imageName("baboon.jpg"); // by defaultif (argc > 1){imageName =(char)argv[1];}Mat image;image = imread(imageName.c_str(), CV_LOAD_IMAGE_UNCHANGED); // 将图像读入imageif (image.data==NULL) // 判断是否读入图像{cout << "Could not open or find the image" << std::endl;return -1;}Mat A = image;//将图像image 赋值给AA = A - 100;//改变A 通过输出窗口Display windowimage 和 Display windowA 观察image是否改变Mat C = A+0 ;//定义C 将A加0赋值给CC = C + 100;//改变C 通过输出窗口Display windowA 和 Display windowC 观察A是否改变//创建输出窗口namedWindow("Display windowimage", WND_PROP_AUTOSIZE); namedWindow("Display windowA", WND_PROP_AUTOSIZE);namedWindow("Display windowC", WND_PROP_AUTOSIZE);//显示图像imshow("Display windowimage", image); imshow("Display windowA", A);imshow("Display windowC", C);waitKey(0); // 一直显示return 0;}执行程序后的结果:
1 0
- opencv之Mat 类赋值的理解
- Opencv之Mat矩阵赋值小记
- opencv之Mat类
- OpenCV之Mat类
- Opencv之Mat类
- OpenCV中Mat赋值
- OPenCV 的mat类
- opencv的Mat类
- openCV之Mat类解读
- OPENCV之Mat类详解
- OpenCV 之Mat类详解
- OpenCV之Mat类详解
- opencv Mat之间赋值(复制)
- opencv中Mat和数组赋值的几种方法
- opencv中Mat的赋值和访问(一)
- OpenCV中构造Mat矩阵赋值和复制的…
- Opencv Mat理解
- Opencv代码小结之Mat三维创建和Mat逐点逐行赋值
- storm 报错:java.nio.channels.ClosedChannelException: null
- 三角形(5)
- Android Activity启动过程简读 <1>
- CNN代码解析
- ListView(二)——常用
- opencv之Mat 类赋值的理解
- Android消息处理机制实现同步效果
- poj1664 经典深搜
- 有关同一解决方案下多个工程相互调用的问题
- 51 nod 1283 最小周长
- 关于用程序模拟的随机分布
- VB.net版机房收费系统——属性过程
- Python 2.7 解决写入文件的中文乱码问题
- poj1111