我有一个类型为CV_8UC1(8位单通道图像)的cv :: Mat,我想使用at<>运算符访问元素,如下所示:image.at<char>(row, column).但是,当转换为int:时(int) image.at<char>(row, column),某些值变为负值,例如255变为-1.
这可能是一个愚蠢的问题,但我不知道为什么会发生这种情况以及将条目转换为更好的方法int.
提前致谢!
Jav*_*ock 20
你必须指定元素是unsigned char,介于0和255之间,否则它们将是char(签名),从-128到127.转换将是这样的:
(int) image.at<uchar>(row,column);
Run Code Online (Sandbox Code Playgroud)
在矩阵类型CV_8中,UC 1代表无符号字符.
所以,你必须写
image.at<unsigned char>(row, column)
Run Code Online (Sandbox Code Playgroud)