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当时没出现这个问题,可惜刚清理掉了,所以没法再回去调试了,不知道当时什么情况。只好备注一下。

posted @ 2019-10-23 10:31  SpaceVision  阅读(236)  评论(0编辑  收藏  举报