gpt4 book ai didi

opencv - 为什么在OpenCV中打印出像素的颜色时会得到垃圾值而不是RGB?

转载 作者:行者123 更新时间:2023-12-02 17:51:49 24 4
gpt4 key购买 nike

此代码段可打印出垃圾值。

cv::Mat_<cv::vec3b>::iterator it = img.begin<cv::vec3b>(),
itEnd = img.end<cv::vec3b>();

for(; it != itEnd; ++it)
std::cout << (*it)[1] << std::endl;

但这会打印出RGB值的 vector 。

std::cout << img.at(100,200);



当我尝试访问各个RGB值时,我会打印出垃圾值,

有什么原因可能会发生这种情况?

最佳答案

我不确定OpenCV,但是如果 vector 中的每个元素的格式都为[221,123,321],则根据','分隔符分别分割字符串,则可以检索单个像素值。

我了解的是:

 #include<sstream>

string buf;

cout<<"Printing elements:"<<endl;

for(unsigned i=0;i<img.size();i++)
{
istringstream is(img[i]);

while(getline(is, buf, ','))
{
if(buf.at(0)=='[')
{
buf.erase(0, 1);
}
if(buf.at(buf.length()-1)==']')
{
buf.erase(buf.length()-1, buf.length());
}
cout<<buf<<endl;
}
}

输出

打印元素:

221

123

321

...

...

关于opencv - 为什么在OpenCV中打印出像素的颜色时会得到垃圾值而不是RGB?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18739150/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com