cv::Vec

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)表示某一具体像素点。

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

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    cv::Vec

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/339714

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月2日 上午12:15
下一篇 2023年3月2日 上午12:15

相关推荐