【opencv】4.初始化Mat的方式、访问cv::Mat中的某个元素

可以参考:https://www.cnblogs.com/guoben/p/12728390.html

方法1:
cv::Mat img_1 = cv::Mat::zeros(cv::Size(cols, rows), CV_8UC1);

注意cv::Size(cols, rows)是先列再行。

方法2:
cv::Mat img_2 = cv::Mat::zeros(int rows, int cols, int type);

注意这里是先行再列。

type可以为CV_8UC1,如果涉及到Mat矩阵乘法cv::solve求解A*X=B,可以为CV_64FC1


访问cv::Mat中的某个元素:

(1)单通道图像访问

// cv::Mat::at<type>(行号,列号)
// 请注意,单通道的必须这么写unsigned char,不能写成int,否则会有越界问题导致像素值变得紊乱
img.at<unsigned char>(y, x) = 255;

(2)RGB图像访问元素

// RGB通道的则必须这么使用,其中<Vec3b>是RGB通道的一个点(3通道)的类型uchar
// 第i行(y值),第j列(x值)
img.at<Vec3b>(i, j)[0] = 100;   //B
img.at<Vec3b>(i, j)[1] = 120;   //G
img.at<Vec3b>(i, j)[2] = 140;   //R
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值