从cv :: Mat获得像素值作为数字?

问题描述 投票:0回答:1

你好,

我对OpenCV C ++还是很陌生,所以我真的不知道这里发生了什么。我搜索了一种方法来访问Mat图像(类型为CV_8UC3)的像素值,并发现了这一点:

Vec3b bgrPixel = foo.at<Vec3b>(Point(x, y));
//bgrPixel.val[0] is B, bgrPixel.val[1] is G, bgrPixel.val[2] is R

但是输出字符而不是整数,例如,当我执行cout << bgrPixel.val[0] << endl;时,它给出了一些非常奇怪的字符:

r
Ç
è
Ç
~
ö
É
è
ÿ
×
×
;
2
#
2
/
+
'
"
)
%
-
*

如何获取像素值作为整数?还是有一种更简单的方法来访问它们,例如通过将Mat转换为常规数组(就像在Python中那样)?]​​>

感谢您提前回答!

你好,我对OpenCV和C ++还是很陌生,所以我真的不知道这里发生了什么。我搜索了一种方法来访问Mat图像(类型为CV_8UC3)的像素值,并发现了这一点:Vec3b bgrPixel = ...

c++ image opencv pixel mat
1个回答
0
投票

使用:cout << (int)(bgrPixel.val[0]) << endl;

© www.soinside.com 2019 - 2024. All rights reserved.