Assertion failed (((((sizeof(size_t)<<28)|0x8442211) >> ((traits::Depth<_Tp>::value) & ((1 << 3) - 1))*4) & 15) == elemSize1()) in cv::Mat::at
将Mat类型的图像通过灰度化,然后换成单通道的图像
cvtColor(srcimg1, srcimg1_gray, CV_BGR2GRAY);
Mat src1_grayf;
srcimg1_gray.convertTo(src1_grayf, CV_32FC1);
在遍历srcimg1_gray中的像素时,使用srcimg1_gray.at<Vec3b>(I,j)[0]在c++上不会出现编译错误,也可以正常生成解决方法,当使用pybind调用pyd依赖库时,发生以下错误:
Assertion failed (((((sizeof(size_t)<<28)|0x8442211) >> ((traits::Depth<_Tp>::value) & ((1 << 3) - 1))*4) & 15) == elemSize1()) in cv::Mat::at
错误原因:srcimg1_gray此时的channel已经为1,所以出错,改为.at<int>(i, j),则调用成功