【问题标题】:Get the pixel values from cv::Mat as numbers?从 cv::Mat 获取像素值作为数字?
【发布时间】:2020-07-09 02:15:56
【问题描述】:

您好,

我对 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 &lt;&lt; bgrPixel.val[0] &lt;&lt; endl; 时,它会给出一些非常奇怪的字符:

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

如何将像素值获取为整数?或者有没有更简单的方法来访问它们,例如通过将 Mat 转换为常规数组(就像在 Python 中一样)?

提前感谢您的回答!

【问题讨论】:

    标签: c++ image opencv pixel mat


    【解决方案1】:

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

    bgrPixel.val[0]unsigned char 类型,它被打印为字符。

    unsigned char 转换为int 解决了这个问题。

    【讨论】:

    • 谢谢。我知道这个问题听起来很愚蠢,但正如我所说,我对系统没有太多经验。
    猜你喜欢
    • 1970-01-01
    • 2014-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-13
    • 2016-12-19
    • 2011-12-15
    • 1970-01-01
    相关资源
    最近更新 更多