【发布时间】:2013-05-21 03:23:10
【问题描述】:
我想从opencv中已经纠正的黑白图像中返回值。我使用.type() 来查看如何寻址image.at<>(point())。它回馈了0,所以我输入了image.at<int>()。
但它返回的只是数百万的数字,而不是我所期望的;介于0 和255 之间。
我用.channel()查看频道数;这是1,所以我认为应该没问题。
我做错了什么?
【问题讨论】:
我想从opencv中已经纠正的黑白图像中返回值。我使用.type() 来查看如何寻址image.at<>(point())。它回馈了0,所以我输入了image.at<int>()。
但它返回的只是数百万的数字,而不是我所期望的;介于0 和255 之间。
我用.channel()查看频道数;这是1,所以我认为应该没问题。
我做错了什么?
【问题讨论】:
“它返回 0,所以我输入了 image.at<int>()。”
type==0 那是 uchar,不是 int。
尝试:
mat.at<uchar>(row,col);
改为
【讨论】:
如果您的数据是unsigned char,则将像素索引为img.at<uchar>(row,col)
【讨论】:
也许您应该事先尝试将其标准化为 0 到 255 之间的值?使用cv::normalize,alpha = 0 和 beta = 255。
【讨论】: