“RuntimeWarning: overflow encountered in ubyte_scalars像素加减运算溢出异常”原因以及解决办法
- 轉(zhuǎn)載本文請(qǐng)注明詳細(xì)地址
- 本文介紹了像素點(diǎn)相加減溢出的原因與解決方法
目錄
原因:
解決方法:
原因:
這個(gè)問(wèn)題一般是會(huì)出現(xiàn)在圖像處理像素的加減中,出現(xiàn)的原因是因?yàn)閳D片的像素一般是八位即最大值是256,最小值是0,如果超出了這個(gè)范圍就會(huì)出現(xiàn)警告,不會(huì)報(bào)錯(cuò)使得程序停止下來(lái),但是會(huì)使得計(jì)算出來(lái)的結(jié)果有誤。
#假設(shè)一個(gè)圖片像素點(diǎn)的灰度值為136,另一個(gè)像素點(diǎn)的灰度值為180,兩個(gè)灰度值相加出現(xiàn)的結(jié)果按道理來(lái)說(shuō)是:316
但是得出來(lái)的結(jié)果是:60,出現(xiàn)這種情況的原因就是因?yàn)?16溢出了0-256的范圍,導(dǎo)致其重新從0開(kāi)始計(jì)數(shù)
即316-256 = 60
解決方法:
解決方法其實(shí)很簡(jiǎn)單,將8位的數(shù)值強(qiáng)制改成16位或者更高位的數(shù)值計(jì)數(shù)方法,一般用int或者float來(lái)強(qiáng)制修改數(shù)據(jù)類(lèi)型即可
t2max = np.max(t2)t2min = np.min(t2)t2_ = (int(t2max) + int(t2min)) / 2?
總結(jié)
以上是生活随笔為你收集整理的“RuntimeWarning: overflow encountered in ubyte_scalars像素加减运算溢出异常”原因以及解决办法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 机器学习(4)
- 下一篇: speech模块实现语音识别