Я пытаюсь выполнить NDI-вычисление изображения для numpy, но у меня появляется следующая ошибка:
RuntimeWarning: overflow encountered in ubyte_scalars
after removing the cwd from sys.path.
Я обнаружил, что эта ошибка возникает, когда вы превышаете ограничение ubit8 256 (8bit).
Но я не могу определить, где это происходит, код следующий:
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, но это не сработало.
Спасибо