cv2.medianBlur()报错怎么解决

img

img

保留最大连通域
def select_max_region(mask):
nums, labels, stats, centroids = cv2.connectedComponentsWithStats(mask, connectivity=8)
background = 0
for row in range(stats.shape[0]):
if stats[row, :][0] == 0 and stats[row, :][1] == 0:
background = row
stats_no_bg = np.delete(stats, background, axis=0)
max_idx = stats_no_bg[:, 4].argmax()
max_region = np.where(labels==max_idx+1, 1, 0)

return max_region

img2 = select_max_region(img1)
img2=img2*255
cv2.imwrite('3.jpg', img2)

#中值滤波
img3=img2
#img3 = cv2.imread('3.jpg')
median = cv2.medianBlur(img3,25) #参数35
cv2.imwrite('4.jpg', median)

运行结果及报错内容
File "1.py", line 59, in
median = cv2.medianBlur(img3,25) #参数35
cv2.error: OpenCV(4.5.5) D:/a/opencv-python/opencv-python/opencv/modules/imgproc/src/median_blur.simd.hpp:985: error: (-215:Assertion failed) src.depth() == CV_8U && (cn == 1 || cn == 3 || cn == 4) in function 'cv::opt_AVX2::medianBlur'

我的解答思路和尝试过的方法
直接传递就会报错,但是先把图片保存,在重新读取就可以正常运行,怎么解决啊
我想要达到的结果