为什么 OpenCV 会为像素强度返回奇怪的值?

科莫博吉

我有 C++ 和 OpenCV 3.1,我用这些代码将 RGB 三个通道分开:

Mat src = imread("original_image.jpg",CV_LOAD_IMAGE_COLOR);
Mat bgr[3] , bluemat ;
split(src,bgr);
bluemat = bgr[0];
std::cout << "bluemat.at<int>(0,1); : " << bluemat.at<int>(0,1) << '\n';

奇怪的是它打印出一个大数字:1415208581,这是为什么呢?

不是应该在 0-255 范围内吗?为什么不是?

马丁·贝克特

(扩大搜索评论)

openCV 的一个特点cv::Mat图像类型是一个基于原始 C 版本库的非常简单的对象。

cv::Mat包含一个字段,以像素类型,但数据被简单地存储为存储器字节的块。您可以根据需要使用此内存块来存储和访问像素。它使与其他库的链接变得非常灵活和容易,但这意味着您需要手动跟踪数据是什么。

因此,data.at<int>(0,0)将提取第一个像素,就好像数据是整数一样(无论您平台上的整数是什么),data.at<uchar> (0,0)都会以字节形式获取第一个像素(这通常是您想要的)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么OpenCV创建奇怪的矩形?

Opencv C ++错误,无法获取某些像素的像素强度值

在 OpenCV 中设置像素值(奇怪的结果)

为什么 R 中的 coalesce() 会为我返回额外的值?

为什么我应该使用(y,x)而不是(x,y)访问opencv中的像素?

为什么OpenCV cap.get(cv2.CAP_PROP_POS_MSEC)仅返回0?

为什么这个 OpenCV 阈值调用返回一个空白图像?

为什么我的 BGR2GRAY Mat 在基本阈值函数中返回蓝色?[OPENCV]

为什么python-opencv中的绘图函数没有返回?

为什么 opencv 阈值会在非常简单的图像上返回荒谬的输出?

尝试在OpenCV中输入值时,为什么会出现段错误?

为什么waitKey('x')中'x'的不同值在opencv中给出不同的输出?

为什么从向量打印图像像素值会返回废话?

为什么我会为循环获得如此奇怪的行为值?

为什么* args的值很奇怪?

为什么openCV的fastNlMeansDenoisingColored()提供错误?

为什么opencv videowriter这么慢?

为什么用QT编译OpenCV?

为什么要转换为灰度opencv?

为什么使用 Gstreamer 作为 OpenCV 后端?

在OpenCV中,DescriptorExtractor类的descriptorType()返回什么?

为什么像素值保持不变?

为什么UTTypeCreatePreferredIdentifierForTag返回奇怪的UTI?

为什么NodeJS请求返回奇怪的字符?

在OpenCV中复制像素值

OpenCV获取像素颜色值

图像上像素(X,Y)的颜色强度[OpenCV / Python]

为什么jQuery会为元素的CSS函数返回undefined?

为什么这个函数会为这个变量返回 True?