Я передал двоичное изображение (маску) в cv2.findContours()
, и обнаружил, что mask
изменится, хотя это входной параметр.
print('scale: [{} , {}]'.format(np.amin(mask),np.amax(mask)))
contours = cv2.findContours(mask.copy(), cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)
print('scale: [{} , {}]'.format(np.amin(mask),np.amax(mask)))
выведет:
scale: [0,255]
scale: [0,130]
, в то время как:
print('scale: [{} , {}]'.format(np.amin(mask),np.amax(mask)))
contours = cv2.findContours(mask.copy(), cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)
print('scale: [{} , {}]'.format(np.amin(mask),np.amax(mask)))
будет работать, и напечатает
scale: [0, 255]
scale: [0, 255]
Я думаю, это может быть чем-то вроде передачи по ссылке, но я не очень хорош в python и совершенно незнаком с python-opencv
bind. Кто-нибудь может сказать мне причину?
Заранее спасибо!