我想返回已经纠正的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到255之间的值吗?使用cv::normalize,alpha = 0和beta = 255。
“它给了我0,所以我放入image.at<int>()
。”
类型== 0 < - >这是uchar,不是int。
尝试:
mat.at<uchar>(row,col);
代替
如果你的数据是unsigned char
那么指数像素作为img.at<uchar>(row,col)
感谢。我把它归类为漂浮物,因为uchar似乎不适合我;规范化(图像,dst,0,255,NORM_MINMAX,CV_32F)。 – Moeltiepas