OpenCV类型为CV_32S时,convertToShow中CV_Assert(src_depth != CV_16F && src_depth != CV_32S);断言抛出异常
新版本的openCV 4.1.1, 4.1.2 都碰到同样的问题:
当image 的类型为CV_32S时,无法显示,发现modules\highgui\src\precompile.hpp断言处exception
inline void convertToShow(const cv::Mat &src, cv::Mat &dst, bool toRGB = true)
{
const int src_depth = src.depth();
CV_Assert(src_depth != CV_16F && src_depth != CV_32S); // 这里抛出异常
。。。。。
解决办法:转换成32F再显示,
cv::Mat src = Mat::zeros(dist.size(), CV_32S);
cv::Mat temp;
src.convertTo(temp, CV_32F);
cv::imshow("converted", temp);
老版本的VS2017貌似CV_32S当时没出现这个问题,可惜刚清理掉了,所以没法再回去调试了,不知道当时什么情况。只好备注一下。