Учитывая, что последний 0
в вашем пороговом вызове означает cv.THRESH_BINARY
, он следует этой функции:
Поскольку ваш maxval
установлен в 1, вы можете заменить этот пороговый вызов чем-то вроде этого:
(y[0,:,:,0] > 0.4).float()
Я использую Float, но вы можете изменить это, когда вы sh из c. Или даже что-то вроде:
(y[0,:,:,0] > 0.4).to(dtype=y.dtype)
, чтобы он оставался с тем же типом данных.