error: (-215:Assertion failed) (depth == CV_8U || depth == CV_32F) && _img.dims() <= 2 in
Posted truedragon
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了error: (-215:Assertion failed) (depth == CV_8U || depth == CV_32F) && _img.dims() <= 2 in相关的知识,希望对你有一定的参考价值。
第一种报错:error: (-215:Assertion failed) (depth == CV_8U || depth == CV_32F) && type == _templ.type() && _img.dims() <= 2 in function ‘cv::matchTemplate‘
出现在使用matchTemplate()时,比如:
cv.matchTemplate(roi,digitROI,cv.TM_CCOEFF)
解决方法修改模板图片为RGB,如下
digitROI = cv.cvtColor(digitROI, cv.COLOR_BGR2RGB)
再次运行,程序不再报错可以成功运行,实测只有模板图像需要修改,roi图像不需要改变也可以
第二种错误:ValueError: not enough values to unpack (expected 3, got 2)
错误原因是opencv4.0以上的版本中findcontours函数将不会再返回3个参数,而只返回contours和hierarchy两个返回值
解决,去掉一个返回值就可以了,或者将你的opencv版本号降下去
contours , hierarchy = cv.findContours(group,cv.RETR_EXTERNAL,cv.CHAIN_APPROX_SIMPLE)
第三种错误:error: (-215:Assertion failed) size.width>0 && size.height>0 in function ‘cv::imshow‘
这种错误一般就是你的图片路径错误,或者图片格式错误,还有 别用中文命名,不然也会报这个错误
第四个坑:使用sobel算子一定别忘了做绝对值处理和归一化,不然结果相差甚远
比如左图是未做绝对值处理和归一化,右图是做了的,最下面的图是只做归一化未做绝对值
做法
gradX = cv.Sobel(tophat,cv.CV_32F,dx=1,dy=0,ksize=-1) gradX = np.absolute(gradX) (minVal, maxVal) = (np.min(gradX), np.max(gradX)) gradX = (255 * ((gradX - minVal) / (maxVal - minVal))) gradX = gradX.astype("uint8") cvshow(gradX)
以上是关于error: (-215:Assertion failed) (depth == CV_8U || depth == CV_32F) && _img.dims() <= 2 in的主要内容,如果未能解决你的问题,请参考以下文章
解决hiveserver2报错:java.io.IOException: Job status not available - Error while processing statement: FA
异常:Error response from daemon: conflict: unable to delete 6fa48e047721 (cannot be forced) - image ha
Heroku 崩溃错误:heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/fa
Webpack“找不到模块:错误:无法解析'../webfonts/fa-solid-900.eot'”
Dart / Flutter:错误“流已被收听。” fa“for循环”中的&&“等待”失败
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000fa980000, 59244544, 0)