opencv第3讲--opencv中图像创建与赋值
1. C++中的Mat对象
Mat的数据结构
2.代码:
void QuickDemo::mat_creation_demo(Mat& image) { //创建方法--克隆 Mat m1 = image.clone(); //深拷贝 //复制 Mat m2; image.copyTo(m2); //深拷贝 //赋值法 Mat m3 = image; //浅拷贝 //创建空白图像 Mat m4 = Mat::zeros(image.size(), image.type()); //根据输入图像的大小和通道数量创建数据 Mat m5 = Mat::zeros(Size(8, 8), CV_8UC3); // 无符号的8为的unsigned char 的三通道图像数据 cout << m5 << endl; cout << m5.cols << endl; //打印宽度 cout << m5.rows << endl; //打印高度 cout << m5.channels() << endl; //打印通道数量 //创建初始数值全是1的一个数据图像,但是只能应用到单通道,多通道初始数据是1 0 0 Mat m6 = Mat::ones(Size(8, 8), CV_8UC1); m6 = 127; //数据编程了127 0 0... //如果想把多通道的数值都发生改变 m6 = Scalar(127,127,127); //全部数据变为127 //Mat kernel = (Mat_(3, 3) << // 0, -1, 0, // -1, 5, -1, // 0, -1, 0); }