图像对象的创建与复制

知识点

1.Mat的copy

Mat m2;

src.copyTo(m2);

2.Mat的赋值

Mat  m3=src

创建空白图像

Mat m4=Mat::zeros(src.size().src.type())

Mat m5=Mat::zeros(src.size(512,512).CV_8uc3)

Mat m6=Mat::zeros(src.size().CV_8uc3)

Mat kemel =(Mat_<char>(3,3)<<)矩阵

代码

首先在头文件中加载新的demo

之后在源文件中添加要学习的参数

void QUickdemo::mat_creation_demo(Mat& image)
{
    Mat m1, m2;
    //m1 = image.clone();
    //image.copyTo(m2);
    //创建空白图像
    Mat m3 = Mat::ones(Size(8,8), CV_8SC1);--cv_8sc1无符号八位单通道数据,规格是8X8,从0开始到7如图1若改成8sc3则变为8行24列。s代表整形c1代表单通道,8代表8位深度,深度决定图像的质量8,16,32,64.
    std::cout << m3 << std::endl;


}

展示空白图片的长度和宽度

std::cout << "      width:     " << m3.cols << "       height      " << m3.rows <<m3.channels<< std:end--其中channels没有在程序中体现,代表着通道数量,这样会出现一个问题就是更改通道数量就会只有第一列的值被改变了,如图

当知道通道数是可以用Scalar指令来更改

m3=Scalar(127,127,127);

根据scalar可以改变所选的窗口颜色



下面代码是关于覆盖

Mat m4 = m3;
m4 = Scalar(255, 0, 0);
imshow("123", m3);

输出的将会是更改后的m4的代码



下面是克隆代码

将会输出两个颜色的代码

Mat m4 = m3.clone();
m4 = Scalar(255, 0, 0);
imshow("123", m3);
imshow("124", m4);



下面是复制代码

Mat m4;
m3.copyTo(m4);
m4 = Scalar(255, 0, 0);
imshow("123", m3);
imshow("124", m4);
更改M3的值不会影响m4



个人理解若有不对,请多指正

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值