python opencv图像二值化问题

TypeError: Expected Ptrcv::UMat for argument '%s'

import cv2 as cv
import numpy as np
img0 = cv.imread("E:\Python Exercise\pictures\changwen.jpg")
if img0 is None:
print('1111')
exit()
img = cv.resize(img0,None,fx=0.3,fy=0.3)
gray = cv.cvtColor(img,cv.COLOR_BGR2GRAY)
#彩色图像二值化
img_B = cv.threshold(img,125,255,cv.THRESH_BINARY)
img_B_V = cv.threshold(img,125,255,cv.THRESH_BINARY_INV)
cv.imshow('img_B',img_B)
cv.imshow('img_B_V',img_B_V)
cv.waitKey(0)
cv.destroyAllWindows()

TypeError: Expected Ptrcv::UMat for argument '%s

搜了搜说是什么数据类型的错误,但是不知道往哪个地方改。求指点

能够把二值化图像显示出来

cv2.threshold这个函数有两个返回值的,一个是实际分割时候的阈值,一个是分割之后的图像,所以你需要改成两个参数接受才能正确imshow
ret,img_B = cv.threshold(img,125,255,cv.THRESH_BINARY),下面那个一样