Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在GDB调试器中显示cv2 Mat < >我调试了一个用C++编写的函数,用于GDB中的Python。该函数使用OpenCV。是否可以在GDB调试器中显示OpenCV Mat的值_C++_Opencv - Fatal编程技术网

在GDB调试器中显示cv2 Mat < >我调试了一个用C++编写的函数,用于GDB中的Python。该函数使用OpenCV。是否可以在GDB调试器中显示OpenCV Mat的值

在GDB调试器中显示cv2 Mat < >我调试了一个用C++编写的函数,用于GDB中的Python。该函数使用OpenCV。是否可以在GDB调试器中显示OpenCV Mat的值,c++,opencv,C++,Opencv,对于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 "\

对于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
(gdb)打印(yp)
$48={flags=1124024325,dims=2,rows=1,cols=100,
数据=0x7fff979c9530“,参考计数=0x7fff979c96c0,
datastart=0x7fff979c9530“”,dataend=0x7fff979c96c0“\001”,
datalimit=0x7fff979c96c0“\001”,分配器=0x0,大小={
p=0x7fffff9ab8},步骤={p=0x7fffff9b00,buf={400,4}}}
(gdb)打印(yp.at(0,1))
无法计算函数--可能是内联函数

您可以使用以下命令将yp.data打印为200个浮点数组,注意200=行*列*dims:
(gdb)打印*(浮动*)yp。data@200

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

看一看