首页 > 其他 > 详细

cv::Vec<type, 长度>,以及和 .at(int y, int x)的用法

时间:2020-04-03 20:47:46      阅读:66      评论:0      收藏:0      [点我收藏+]

1.cv::Vec<type, 长度> :固定向量类

其实可以把它当成数组,例如Vec<uchar,3>,就是定义一个uchar类型的,长度为3的数组。

Vec3b,Vec3f是它具体情况下的别名

typedef  Vec<uchar,3>  Vec3b   //为 Vec<uchar,3>定义别名Vec3b
typedef  Vec<float,3>  Vec3f   //为 Vec<float,3>定义别名Vec3f    

2. cv::mat的成员函数: .at(int y, int x)的用法

如有下面的代码:

Mat image = imread("d:/test/apple.jpg", 1);		//创建Mat对象,保存一张彩色图像(有3个通道),假设已知图像的数据类型是uchar

image.at<Vec3b>(2,3)[0]=255;//为图像(x,y)位置的像素点B通道重新赋值
image.at<Vec3b>(2,3)[1]=200;//为图像(x,y)位置的像素点G通道重新赋值
image.at<Vec3b>(2,3)[2]=199;//为图像(x,y)位置的像素点R通道重新赋值

image.at(x,y)[m]: image图像(x,y)像素点m通道的值

因为图像的数据类型是uchar,有三个通道,所以用刚好可以存储(x,y)位置的像素的三个通道的值,m表示m通道的值,0对应B,1对应G,2对应R。

另:

如果image是一个uchar类型的1同道的灰度图像,则可以用image.at(x,y)表示某一具体像素点。

cv::Vec<type, 长度>,以及和 .at(int y, int x)的用法

原文:https://www.cnblogs.com/TearCheer/p/12628798.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!