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++ 使用Catch2Armwork测试我的函数时出现问题_C++_Opencv_Catch2 - Fatal编程技术网

C++ 使用Catch2Armwork测试我的函数时出现问题

C++ 使用Catch2Armwork测试我的函数时出现问题,c++,opencv,catch2,C++,Opencv,Catch2,我已经编写了一个函数FindTopEnd,它接受一些参数,如图所示。此函数沿垂直直线从下向上移动,并检查黑色像素。如果发现黑色像素,则检查该点上方3个像素的黑色像素。如果在那里发现了一个黑色像素,那么它会将该初始像素值存储在变量中,并存储线的长度。在运行源代码时,它可以正常工作,但在测试中,它会在中间停下来,没有任何错误,并给出错误的输出 我在不同的图像上尝试过它,并为输出一步一步地调试代码,但每次在150像素上满足if()条件时,for循环就会中断,并给出错误的输出 注意:在测试用例中,280

我已经编写了一个函数FindTopEnd,它接受一些参数,如图所示。此函数沿垂直直线从下向上移动,并检查黑色像素。如果发现黑色像素,则检查该点上方3个像素的黑色像素。如果在那里发现了一个黑色像素,那么它会将该初始像素值存储在变量中,并存储线的长度。在运行源代码时,它可以正常工作,但在测试中,它会在中间停下来,没有任何错误,并给出错误的输出

我在不同的图像上尝试过它,并为输出一步一步地调试代码,但每次在150像素上满足if()条件时,for循环就会中断,并给出错误的输出

注意:在测试用例中,280像素被作为输入,只用于空白区域中的测试目的。

//这是我的函数
无效FindOpenD(Mat输入图像,标准::int16_t LineBase_x,标准::int16_t LineBase_y,标准::int64_t*LineHead_x,标准::int64_t*LineHead_y,标准::int64_t*ArrayBox)
{
std::int16\u t LineLengthFound=0;//如果找到的线的长度为1
*线头_x=线基_x;
*线头y=299;
std::int16_t x=InputImage.rows;
对于(std::int16\t LineLength=0;LineLength=0)
{
如果(InputImage.at(((InputImage.rows-1)-线宽-3),(*线宽x))==0)
{
*LineHead_y=(InputImage.rows-1)-线宽;
*ArrayBox=线宽;
LineLengthFound=1;
打破
}
}
}
*LineHead_y=(InputImage.rows-1)-线宽;
线(输入图像,点(线基_x,线基_y),点(*线头_x,*线头_y),标量(0,90,0));
imshow(“行”,输入图像);
等待键(5);
}
如果(!LineLengthFound)//如果未找到长度,则该线的长度为帧(无障碍物)
{
*ArrayBox=InputImage.rows;
*线头y=0;
}
}
//这是我的测试用例
第节(“空白”)
{
标准::int64_t线头x,线头y,线长;
FindOpenD(输入图像、280、299和线头x、线头y和线长);

std::cout在测试过程中,我给出了一个3通道图像作为输入,但在运行源代码时,此函数的输入图像是一个单通道灰度图像。更正后,测试工作正常。但仍然存在一个问题,那就是为什么每一次的行都以150像素停止。

在测试过程中,我是givi将一个3通道图像作为输入,但在运行源代码时,此函数的输入图像是一个单通道灰度图像。更正后,测试工作正常。但仍然存在一个问题,即为什么每次都有150像素的行停止