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
C++ cv::Mat在与';at<;无符号字符>;(0,0)和#x27;_C++_Opencv - Fatal编程技术网

C++ cv::Mat在与';at<;无符号字符>;(0,0)和#x27;

C++ cv::Mat在与';at<;无符号字符>;(0,0)和#x27;,c++,opencv,C++,Opencv,我有以下几段简单的代码正在崩溃,我现在还不清楚为什么这样做不起作用 cv::Mat *test_bug = new cv::Mat(img->rows, img->cols, CV_32F); test_bug->at<unsigned char>(0,0) = 4; cv::Mat*test\u bug=new cv::Mat(img->rows,img->cols,cv\u 32F); 测试错误->在(0,0)=4; test\u bug最后是一个207乘2

我有以下几段简单的代码正在崩溃,我现在还不清楚为什么这样做不起作用

cv::Mat *test_bug = new cv::Mat(img->rows, img->cols, CV_32F);
test_bug->at<unsigned char>(0,0) = 4;
cv::Mat*test\u bug=new cv::Mat(img->rows,img->cols,cv\u 32F);
测试错误->在(0,0)=4;
test\u bug
最后是一个207乘207的矩阵..所以我知道数组索引是有效的。这是复制/粘贴错误

OpenCV错误:断言失败(dims原因: 注意
CV_32F
;这是一个浮点矩阵

test_bug->at<unsigned char>(0,0) = 4;
或者,如果要声明
uchar
矩阵:

cv::Mat *test_bug = new cv::Mat(img->rows, img->cols, CV_8U);
原因: 注意
CV_32F
;这是一个浮点矩阵

test_bug->at<unsigned char>(0,0) = 4;
或者,如果要声明
uchar
矩阵:

cv::Mat *test_bug = new cv::Mat(img->rows, img->cols, CV_8U);

我准确地运行了您的代码,没有遇到任何问题,但我正在Linux上使用OpenCV主干

有几件事可以尝试:

如果使用浮点数而不是无符号字符,会发生什么情况:

test_bug->at< float >(0, 0) = 4.0;
另外,确保
img->size()!=size(0,0)
这也可能是个问题


希望这会有帮助!

我准确地运行了您的代码,没有遇到任何问题,但我正在Linux上使用OpenCV主干

有几件事可以尝试:

如果使用浮点数而不是无符号字符,会发生什么情况:

test_bug->at< float >(0, 0) = 4.0;
另外,确保
img->size()!=size(0,0)
这也可能是个问题


希望这会有帮助!

您是否尝试在编译代码时启用了所有警告并提供了调试信息(使用的GCC将是
GCC-Wall-g
)?是否尝试使用调试器(例如
gdb
)?我拥有的opencv库仅限于visual studio。我正在使用调试器进行调试,但我不清楚为什么会失败。这似乎是opencv本身引发的错误。您是否尝试在启用所有警告和调试信息的情况下编译代码(使用的GCC将是
GCC-Wall-g
)?您是否尝试使用调试器(例如,
gdb
)?我拥有的opencv库仅限于visual studio。我正在使用调试器,但我不清楚为什么会失败。这似乎是opencv本身引发的错误
test_bug->at< unsigned int >(0, 0) = 0x41CA0000; // same as 25.25 in IEEE 754...