我正在尝试对numpy上的图像进行NDI计算,但是出现以下错误:
RuntimeWarning: overflow encountered in ubyte_scalars
after removing the cwd from sys.path.
我发现,当您超出ubit8 256(8位)限制时,就会发生此错误。
但是我无法确定它发生在哪里,代码如下:
import cv2
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
fruta = cv2.imread("l4.jpg")
NDI = np.ones(np.shape(fruta), dtype= 'float64')
for i in range (len(fruta)):
for j in range (len(fruta[i])):
if (fruta[i,j,1] + fruta[i,j,2]) == 0:
NDI[i,j,0] = 0
else:
NDI[i,j,0] = int( int(int(fruta[i,j,1]) - int(fruta[i,j,2]) ) / int(int(fruta[i,j,1]) + int(fruta[i,j,2]) ) )
此外,我尝试将所有内容都转换为int,但没有用。
谢谢