Python错误集锦:opencv subtract计算图像和标量减法时提示error: (-215:Assertion failed) type2 == CV_64F && (sz2.height == 1 || sz2.height == 4) in function ‘cv::arithm_op’

原文链接:http://www.juzicode.com/archives/5838

错误提示:

opencv subtract计算图像和标量减法时提示error: (-215:Assertion failed) type2 == CV_64F && (sz2.height == 1 || sz2.height == 4) in function ‘cv::arithm_op’

#VX公众号:桔子code / juzicode.com
import cv2
print('cv2.__version__:',cv2.__version__)
img = cv2.imread('lena.jpg')   
print(img.shape)
img_res = cv2.subtract(img,(100,100,100))                 
cv2.imshow('img_res',img_res) 
cv2.waitKey(0)
cv2.destroyAllWindows()
==========运行结果:
cv2.__version__: 4.5.2
(512, 512, 3)
---------------------------------------------------------------------------
error                                     Traceback (most recent call last)
<ipython-input-18-f6cf41a7f6a6> in <module>
      4 img = cv2.imread('lena.jpg')
      5 print(img.shape)
----> 6 img_res = cv2.subtract(img,(100,100,100))
      7 cv2.imshow('img_res',img_res)
      8 cv2.waitKey(0)

error: OpenCV(4.5.2) C:\Users\runneradmin\AppData\Local\Temp\pip-req-build-kuwfz3h3\opencv\modules\core\src\arithm.cpp:652: error: (-215:Assertion failed) type2 == CV_64F && (sz2.height == 1 || sz2.height == 4) in function 'cv::arithm_op'

 

错误原因:

1、从如下shape属性看,虽然是一个3通道图像,但是在和标量相减时,标量数据的size错误,根据提示应该为1个数值(灰度图)或者为包含4个元素的元组(彩色图)。

 

解决方法:

1、修改减数为包含4个元素的元组。img_res = cv2.subtract(img,(100,100,100,0))

#VX公众号:桔子code / juzicode.com
import cv2
print('cv2.__version__:',cv2.__version__)
img = cv2.imread('lena.jpg')   
print(img.shape)
#img_res = cv2.subtract(img,(100,100,100))  
img_res = cv2.subtract(img,(100,100,100,0))                 
cv2.imshow('img_res',img_res) 
cv2.waitKey(0)
cv2.destroyAllWindows()

 运行结果:

扩展内容:

  1.  
  2.  

 


 

如果本文还没有完全解决你的疑惑,你也可以在微信公众号“桔子code”后台给我留言,我们一起探讨交流。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注