c++ - 访问 OpenCV CV_8UC1 cv::Mat 的元素

标签 c++ opencv

我有一个 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/

相关文章:

c++ - 如何在 Windows Vista/7 中以编程方式控制文本输入面板 (TabTip.exe)

c++ - 如何在控制台程序中获取鼠标位置?

android - 带有 Google Glass 库/管理器问题的 OpenCV

c# - 为什么精确的图像没有精确的描述符?

android - 从Mat,opencv android获取直方图数据

c++ - 表达式必须是二维数组的可修改左值

c++ - 有没有办法将 child *返回到基地*并评估哪个 child *已返回?

c++ - 从给定的中序和前序遍历构造二叉树

opencv - OpenCV,我们如何将Mat min最小化为max并将max最小化为min?

c - 在 opencv 序列中需要帮助!