我有一个 CV_8UC1 类型的 cv::Mat(8 位单 channel 图像),我想使用 at<>
访问元素运算符如下:image.at<char>(row, column)
.但是,当转换到 int
时: (int) image.at<char>(row, column)
,一些值变为负数,例如 255 变为 -1。
这可能是一个愚蠢的问题,但我不知道为什么会发生这种情况,以及将条目转换为 int
的更好方法是什么? .
提前致谢!
最佳答案
您必须指定元素是 unsigned char,介于 0 和 255 之间,否则它们将是 char(有符号),从 -128 到 127。转换将是这样的:
(int) image.at<uchar>(row,column);
关于c++ - 访问 OpenCV CV_8UC1 cv::Mat 的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12704965/