c++ - 从 <cv::vec3b> vector 中分别获取 R、G、B

标签 c++ opencv image-processing computer-vision

为了让我的问题更清楚,请查看代码。

vector<cv::Vec3b> v_char; // the vector that I am storing my r,g,b values, or b,g,r in this case since it's opencv.

我知道要打印出使用值的值,我可以直接从图像中简单地获取,就像这样。

b = image.at<cv::Vec3b>(i,j)[0];
g = image.at<cv::Vec3b>(i,j)[1];
r = image.at<cv::Vec3b>(i,j)[2];

但是,如果不使用图像(假设图像消失了),我只想要 vector v_char 中的值,其中存储了所有图像值,例如,我只想要 r 值,我该如何取回它?尝试在互联网上搜索它并尝试使用代码,但无济于事:(

编辑:更多细节 vector v_char 仅存储图像一行的值。因此,例如:我想查找并打印出可以在 v_char vector 中找到的特定行的所有 r 值。我可以使用 for 循环,但是如何只声明 r 值呢?

最佳答案

Vec3b v_char 本身是一个包含 3 个值的 vector ,可以作为 first values = v_char.val[0], second values = v_char.val 访问[1]第三个值 = v_char.val[2]。因为您只需要 red 值,所以只需访问整个 vector 的 v_char.val[0] 中的所有值。

所以通过一个for循环尝试获取所有的值:

v_char[i].val[0]; // "i" represents the index of "for loop" for a given row

关于c++ - 从 <cv::vec3b> vector 中分别获取 R、G、B,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21950786/

相关文章:

C++使用lambda进行隐式构造函数调用,期望函数指针

c++ - 为什么不能将 const set<Derived*> 作为 const set<Base*> 传递给函数?

c++ - OpenCV 获取连接的边

c++ - 在 C++ 中打印对象列表

c++ - 派生类的基类值的初始化

object - 如何使用 OpenCV BackgroundSubtractorMOG2 获取移动物体的掩码

python - 如何检测哪些圆圈被填充 + OpenCV + Python

python - 如何找到结构元素的高斯加权平均值和标准差

c - 如何从图像的直方图中过滤感兴趣的对象?

ios - 如何拍摄模糊的照片(例如从 iPad 2 拍摄的照片)并使用 iOS API 对其进行锐化?