Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个 CV_8UC1(8 位单通道图像)类型的 cv::Mat,我想使用以下运算符访问元素at<>:image.at<char>(row, column)但是,当转换为int:时(int) image.at<char>(row, column),某些值会变为负数,例如 255 变为 -1。
at<>
image.at<char>(row, column)
int
(int) image.at<char>(row, column)
这可能是一个愚蠢的问题,但我不知道为什么会发生这种情况,以及将条目转换为int.
提前致谢!
您必须指定元素是unsigned char,介于 0 和 255 之间,否则它们将是 char(有符号),从 -128 到 127。转换将是这样的:
(int) image.at<uchar>(row,column);
在矩阵类型 CV_8 中,UC 1 代表无符号字符。
所以,你必须写
image.at<unsigned char>(row, column)