矩阵构造之输出 --opencv学习记录(一)

矩阵构造之输出 --opencv学习记录(一) mini菜 2023-07-05 10:48:27 644

1.构造

1.1 Mat img; 只是创建了一个Mat信息头,不会创建数据区

1.2Mat::Mat(int rows,int cols,int type)

rows 列数
cols 行数
type 类型

  1. Mat q = Mat::Mat(10, 1, CV_8UC3);
  2. cout << q;
  3. cout << endl;

1.3 Mat::Mat(Size size,int type)

创建大小为size,类型为type的图像

这里注意一点在opencv中 Size是一个模版类,有成员函数Size(width,height)注意宽在前,高在后(列在前,行在后)

  1. Mat q1 = Mat::Mat(Size(1, 3), CV_8UC1);
  2. cout << q1;

1.4 还可以直接赋值

  1. Mat img = (Mat_<int>(3, 3) << 1, 2, 3, 4, 5, 6, 7, 8, 9);
  2. cout << img;

1.5 还有一些比较特殊的矩阵,比如:

全0矩阵 zreos
全1矩阵 ones
对角线为1矩阵 eye

  1. Mat img1 = Mat::zeros(3, 3, CV_8UC1);//全0
  2. cout << img1;
  3. cout << endl;
  4. Mat img2 = Mat::ones(3, 3,CV_8UC1);//全1
  5. cout << img2;
  6. cout << endl;
  7. Mat img3 = Mat::eye(3, 3, CV_8UC1);//对角线1
  8. cout << img3;
  9. cout << endl;

1.6 一些矩阵的属性

rows 矩阵的行数
cols 矩阵的列数
dims 矩阵的维度
channels() 矩阵的通道数

  1. Mat img = Mat::ones(100, 200, CV_8UC3);
  2. cout << "行数" << M.rows << endl;
  3. cout << "列数" << M.cols << endl;
  4. cout << "通道数" << M.channels() << endl;
  5. cout << "维数" << M.dims << endl;

2 打印

2.1 可以直接进行输出

2.2 指针数组方式

uchar* p=(uchar*)img.data
这种情况使用两个for循环进行输出 行直接rows,列的话还要考虑三通道的情况,所以要列数通道数

2.3 ptr方式

mat.ptr(row){col}
比如:
单通道
uchar data1=img.ptr《uchar》(0){1} 指向img第一行第二个元素
uchar* data1=img.ptr《uchar》(0) 指向img第一行第一个元素
uchar* data1=img.ptr《uchar》{1} 指向img第一行第二个元素

多通道
Vec3d *data=img.ptr《Vec3b》(0){0}

  1. Mat img = Mat::ones(3, 2, CV_8UC3);
  2. cout << img.at<Vec3b>(1, 1);

2.4 at用于取得图像上的点

img.at《uchar》(i,j) 取出灰度图像中i行j列的点

声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
mini菜
红包 点赞 收藏 评论 打赏
评论
0个
内容存在敏感词
手气红包
    易百纳技术社区暂无数据
相关专栏
置顶时间设置
结束时间
删除原因
  • 广告/SPAM
  • 恶意灌水
  • 违规内容
  • 文不对题
  • 重复发帖
打赏作者
易百纳技术社区
mini菜
您的支持将鼓励我继续创作!
打赏金额:
¥1易百纳技术社区
¥5易百纳技术社区
¥10易百纳技术社区
¥50易百纳技术社区
¥100易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区微信支付
易百纳技术社区
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

审核成功

发布时间设置
发布时间:
是否关联周任务-专栏模块

审核失败

失败原因
备注
拼手气红包 红包规则
祝福语
恭喜发财,大吉大利!
红包金额
红包最小金额不能低于5元
红包数量
红包数量范围10~50个
余额支付
当前余额:
可前往问答、专栏板块获取收益 去获取
取 消 确 定

小包子的红包

恭喜发财,大吉大利

已领取20/40,共1.6元 红包规则

    易百纳技术社区