gpt4 book ai didi

c++ - 在 GDB 调试器中显示 cv2 Mat

转载 作者:搜寻专家 更新时间:2023-10-31 02:05:29 26 4
gpt4 key购买 nike

我正在 GDB 中调试用 C++ 为 Python 编写的函数。该函数使用 OpenCV。是否可以在GDB调试器中显示OpenCV Mat的值?

对于 Mat yp,这只是我得到的:

(gdb) print(yp) 

$48 = {flags = 1124024325, dims = 2, rows = 1, cols = 100,
data = 0x7fff979c9530 "", refcount = 0x7fff979c96c0,
datastart = 0x7fff979c9530 "", dataend = 0x7fff979c96c0 "\001",
datalimit = 0x7fff979c96c0 "\001", allocator = 0x0, size = {
p = 0x7fffffff9ab8}, step = {p = 0x7fffffff9b00, buf = {400, 4}}}

(gdb) print(yp.at<float>(0,1))
Cannot evaluate function -- may be inlined

最佳答案

您可以使用以下命令将 yp.data 打印为 200 个 float 的数组,注意 200 = rows * cols * dims:(gdb) 打印 *(float *)yp.data@200

这里我依赖于 cv::Mat 的数据成员是指向数据缓冲区的指针这一事实。这应该适用于 OpenCV 2.x、3.x 和 4.x,假设默认步幅(步长)为 1。

关于c++ - 在 GDB 调试器中显示 cv2 Mat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51943439/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com