前幾天同事在測試別人代碼的時候,發現所測得指標很高,但拿到我寫的代碼上測試,指標低了不少,究竟是怎麼回事呢?原來是別人代碼中出現溢出現象。
接下來我們直接分析代碼
img1 = cv2.imread("kodim01.png")
img2 = cv2.imread("kodim01.png")
img3 = (img1 + img2) // 2
cv2.imshow("img3", img3)
cv2.waitKey(0)
上面這一份代碼,一眼看去感覺沒有什麼bug,還很漂亮的樣子(偷偷誇一下我寫的,哈哈),結果運行一下,感覺圖片被人換了。
接着看下面一份代碼,必定會想明白是什麼原因。
img1 = np.array(cv2.imread("kodim01.png"), np.float)
img2 = np.array(cv2.imread("kodim01.png"), np.float)
img3 = (img1 + img2) // 2
img3 = np.array(img3, np.uint8)
cv2.imshow("img3", img3)
cv2.waitKey(0)
小結:一種類型傳到numpy中,如果後面出現溢出現象,numpy不會自動調節類型