我非常喜欢使用统一初始化,当我想要构造初始化的变量时,我在大多数情况下都会使用它。最近,在构造类型为cv::Mat
的变量时,我遇到了奇怪的错误。
cv::Mat lookUpTable( 1, 256, CV_8U );
uchar* p = lookUpTable.ptr();
for( int i = 0; i < 256; ++i )
{
p[i] = cv::saturate_cast<uchar>( pow( i / 255.0, gamma ) * 255.0 );
}
虽然这种实现方式表现良好,但如果使用统一初始化,则可能会出现问题。
cv::Mat lookUpTable{ 1, 256, CV_8U };
出现以下错误:
malloc_consolidate(): invalid chunk size
我仍然不确定发生了什么。是否使用了不同的构造函数(而非预期的)?请有人进一步解释一下吗?