前提・実現したいこと
なぜ、”(v.astype(int)*brightness/v.mean())”のときだけ出力結果が異なるのか....
code
Python
1import cv2 2hsv_img = cv2.cvtColor(img,cv2.COLOR_BGR2HSV) 3h,s,v = cv2.split(hsv_img) 4b = 100 5 6print(type(v)) 7print(v.dtype) 8v2 = v * b / v.mean() 9print(v2) 10 11v3 = (v.astype(int)) 12print(type(v3)) 13print(v3.dtype) 14v3 = v * b / v3.mean() 15print(v3) 16 17v4 = (v.astype(int) * b / v.mean()) 18print(type(v4)) 19print(v4.dtype) 20print(v4)
▼出力結果
-v2の出力結果 <class 'numpy.ndarray'> uint8 [[1.18341316 1.18341316 1.18341316 ... 0.46307472 1.46640326 1.46640326] [0.54025383 1.18341316 1.18341316 ... 0.46307472 1.46640326 1.46640326] [0.54025383 1.18341316 1.18341316 ... 1.46640326 0.46307472 0.46307472] ... [0.64315933 0.92614943 0.36016922 ... 0.36016922 0.72033845 1.44067689] [1.20913953 1.36349777 0.15435824 ... 0.15435824 1.51785601 1.15768679] [0.12863187 0. 0.15435824 ... 0.51452746 1.23486591 0.87469668]] -v3の出力結果 <class 'numpy.ndarray'> int64 [[1.18341316 1.18341316 1.18341316 ... 0.46307472 1.46640326 1.46640326] [0.54025383 1.18341316 1.18341316 ... 0.46307472 1.46640326 1.46640326] [0.54025383 1.18341316 1.18341316 ... 1.46640326 0.46307472 0.46307472] ... [0.64315933 0.92614943 0.36016922 ... 0.36016922 0.72033845 1.44067689] [1.20913953 1.36349777 0.15435824 ... 0.15435824 1.51785601 1.15768679] [0.12863187 0. 0.15435824 ... 0.51452746 1.23486591 0.87469668]] -v4の出力結果 <class 'numpy.ndarray'> float64 [[101.61917359 101.61917359 101.61917359 ... 104.1918109 103.54865157 103.54865157] [100.97601426 101.61917359 101.61917359 ... 104.1918109 103.54865157 103.54865157] [100.97601426 101.61917359 101.61917359 ... 103.54865157 104.1918109 104.1918109 ] ... [ 82.96755312 84.8970311 81.03807514 ... 122.20027204 120.91395339 118.34131608] [ 86.82650908 80.39491581 75.89280053 ... 117.05499743 115.12551945 116.4118381 ] [ 90.68546504 82.32439379 75.89280053 ... 115.76867877 113.19604147 114.48236012]]
実質的には、v2とv4は型が変換されて数値が変わる?というのはなんとなく腑に落ちますが(型変換によって出力結果が変わる理由はわかってませんmm)v3とv4に関しては、やっている事自体は同じだと思うので( astype(int)
で型変換)出力結果が同じにならないのはなぜなのでしょうか.....
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/28 01:53 編集
2021/05/28 02:28
2021/05/28 03:41 編集
2021/05/28 11:00