我正在使用OpenCV 2.3.1(c ++ api),当我尝试获取彩色图像的像素值时,我得到了非常奇怪的结果,而不是值数字,输出是这样的:?,*,| 等.例如,代码如下:
cv::Mat inputImage = cv::imread("Picture1.jpg");
std::cout << inputImage.at<cv::Vec3b>(x,y)[0] << std::endl; //print B component
Run Code Online (Sandbox Code Playgroud)
其中x和y是鼠标回调函数的坐标.我认为这种类型是错误的,你知道我还能用什么来代替Vec3b吗?
小智 5
我假设问题正在发生,因为你正在使用"at(x,y)".文档说第一个参数应该是"基于0的行索引"和第二个"基于0的列索引".所以,你应该在(y,x)或(cv :: Point(x,y))调用.
| 归档时间: |
|
| 查看次数: |
5849 次 |
| 最近记录: |