Mat中的像素值读出来是负数?
// 这里我读取的是16bit位深单通道图像depth_img
cv::Mat img = depth_img;
for (int i = 0; i < 240; ++i) {
for (int j = 0; j < 320; ++j) {
std::cout << "pixel value: " << img.at<short>(i, j) << std::endl;
}
}
system("pause");
出现问题:有的像素值出现负值
解决办法
通过查看 opencv at函数API API_at
在读取我的这张图像的像素值时应该用上面红色箭头的 ushort
代码修改之后:
// 这里我读取的是16bit位深单通道图像depth_img
cv::Mat img = depth_img;
for (int i = 0; i < 240; ++i) {
for (int j = 0; j < 320; ++j) {
std::cout << "pixel value: " << img.at<ushort>(i, j) << std::endl;
}
}
system("pause");
同理,如果你的像素值出现负值,有可能也是对应类型有问题。