错误 opencv 错误断言失败 (p [-1] <= 2) 是什么意思以及如何处理它?
What does the error opencv error assertion failed (p [-1] <= 2) mean and how to deal with it?
我正在尝试使用OpenCV库将Mathlab代码转换为加号。
在下面的行上:
resize (sig_temp, sig_temp,
Size (sig_temp.size [0] / 2 + sig_temp.size [0]% 2,
sig_temp.size [1] / 2 + sig_temp.size [1]% 2));
程序出现错误:
opencv error assertion failed (p[-1] <= 2) in cv::Matsize:: operator ()
以前的错误(dims <= 2, top / bottom / right / left> = 0)
非常明显,因此很明显尺寸不应超过两个,图像的边界应该是非负的。我立即不明白 p [-1] 是什么意思以及为什么它不应该超过两个(但我想这里的东西再次与层相连)。
sig_temp
- 三通道垫矩阵。
据
我所知:https://github.com/opencv/opencv/pull/8718/filesMatSize::p 是维度大小的数组。
p[-1] 为您提供数量维度。 也许您的sig_temp矩阵是 3 维或更多?
我的建议是使用其重新塑造的方法将sig_temp定义为
cv::Mat3b sig_temp;
cv::Size
int width, int height
作为参数。Mat::size
的第 0 个元素是高度。
cv::Mat img = imread("image.jpg");
cout<<img.size()<<endl; // This line prints [columns x rows]
cout<<img.size[0]<<endl; // This line prints the rows
cout<<img.size[1]<<endl; // This line prints the columns
所以在这一行中:
Size (sig_temp.size [0] / 2 + sig_temp.size [0]% 2,
sig_temp.size [1] / 2 + sig_temp.size [1]% 2)
您将int height, int width
作为参数提供给cv::Size
,int width, int height
作为参数。
您应该使用行和列以避免混淆。
Size (sig_temp.cols / 2 + sig_temp.cols% 2,
sig_temp.rows / 2 + sig_temp.rows% 2)
相关文章:
- 错误:无效的预处理指令 #i 的意思是 #if?
- 错误:无法解析对重载函数的引用;你的意思是调用它吗?
- C++ [错误] 声明'char '隐藏参数。什么意思?
- "错误:数组下标的无效类型'float [10001][float]'是什么意思?
- 错误"invalid types ... for array subscript"是什么意思?
- C++ - "Incomplete type not allowed"错误是什么意思,我该如何修复它?
- 这个编译器错误是什么意思 - "qualified-id in declaration before ‘=’ token" C++?
- 英特尔SGX错误:8207错误是什么意思是当我无法正确加载飞地时
- VS 链路错误描述中的"@@YAHXZ"是什么意思?
- 我不确定这些错误消息是什么意思
- 这个奇怪的"/usr/bin/ld: cannot find -lXAW_LIBRARY-NOTFOUND"错误是什么意思?
- 错误 opencv 错误断言失败 (p [-1] <= 2) 是什么意思以及如何处理它?
- Waht [错误] 请求 memebr 'area' 在非类类型 'float' 中'r'是什么意思?
- 这个valgrind错误是什么意思
- 这个错误是什么意思?(errorc2678)以及如何修复代码
- 我在运行时遇到以下错误.它是什么意思?我该如何调试它
- 错误 57 - 这是什么意思
- 错误代码LZO_E_LOOKBEHIND_OVERRUN是什么意思
- 错误LNK2019中的 @ 符号是什么意思
- “致命的 Python 错误:PyThreadState_Get:没有当前线程”是什么意思