为了让我的问题更清楚,请查看代码。
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/