小编Dav*_*yan的帖子

Vec3b和Scalar在opencv中有什么区别?

opencv,Vec2b和Vec3b中有不同的类型。Vec4i等,并且有标量类型。据我了解,Vec3b和Scalar都是将三个数字存储在一起的类型。因此,如果我要访问一个我所写的像素(RGB格式)image.at <Vec3b> (x,y)=Vec3b ( number, number, number),Scalar也是一样,但是它们之间有什么区别,甚至还有区别吗?
我问这个问题是因为我在使用Scalar时(我正在尝试将一些像素转换为灰度,但将图像保留为RGB格式)时,使用Vec3b和Scalar有一些奇怪的经验 image.at<Scalar>(x,y)=Scalar( gray_image.at<uchar>(x,y), gray_image.at<uchar>(x,y), gray_image.at<uchar>(x,y));(我在灰度(称为gray_image),但是这似乎给出了一些奇怪的结果,另一方面,当我使用Vec3b而不是Scalar时,我得到的是正常结果。为什么会这样呢?

c++ opencv

3
推荐指数
1
解决办法
7463
查看次数

有没有办法在同一图像opencv C++上同时拥有灰度和rgb像素?

我需要能够处理某些区域是灰度的图像,而其他区域保持RGB格式.我不想将图像转换为灰度,因为它会丢失通道并且将变成简单的通道,有没有办法保持图像上某些像素的RGB通道并将其他像素转换为灰度?

c++ opencv

1
推荐指数
1
解决办法
357
查看次数

标签 统计

c++ ×2

opencv ×2