图形对象的创建与赋值

  下面是示例代码:

void demo::tuxiang_creation()
{
    Mat m3 = Mat::ones(Size(400, 400), CV_8UC3);
    //std::cout << "width " << m3.cols << "height " << m3.rows << "channels " << m3.channels() << std::endl;
    m3 = Scalar(0,255,0);
    //std::cout << m3 << std::endl;
    //imshow("创建图像", m3);
    //Mat m4 = m3;
    Mat m4;
    m4=m3.clone();
    m4 = Scalar(255, 0, 0);
    imshow("图像", m3);
    imshow("图像4", m4);
    
}

在opencv里面基本的计算单元是矩阵,用Mat作为前缀就可以定义矩阵了,在C++里面最重要的概念就是类的概念,我们可以把Mat看成是一个矩阵类,在类里面包含了对类的一些基本操作,而ones(图像大小,通道类型),就是这样的一个操作,它创建一个像素点为400x400,三通道的图像,把返回值赋值给m3。

std::cout << "width " << m3.cols << "height " << m3.rows << "channels " << m3.channels() << std::endl;
//输出矩阵的行长,列长,元素长度

结果如下:

给矩阵赋值,如果直接给矩阵赋值,例如m3=255,则只是给m3元素的第一个值赋值为255,元素其余部分不变,

m3 = 255;
std::cout << m3 << std::endl;

 

 Mat m4=m3;

m4与m3共用一份数据,m4改变时,m3也同时改变,同理,m3改变,m4也会改变,像是C++里面引用的概念。

还有一点是今天才发现的,就是imshow()这个函数如果创建的窗口名字相同的话,他是只会显示一个窗口的,后一个窗口会覆盖前一个窗口。

over!!! 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

什么时候上岸?

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值