предупреждение о переполнении при попытке выполнить операцию добавления в ячейку матрицы - PullRequest
0 голосов
/ 06 октября 2019

Я вижу странное предупреждение, о котором я понятия не имею, что происходит. Я пытаюсь выполнить некоторую операцию с ячейкой изображения, которая выглядит следующим образом:

name = "./images/a.png" 
ci = cv2.imread(name)
img = cv2.cvtColor(ci, cv2.COLOR_BGR2GRAY)
# In the following statement, i and j correspond to the row and column respectively
op =  np.absolute(img[i, j+1] - img[i, j-1]) + np.absolute(img[i-1, j] - img[i, j-1])

Когда я запускаю это утверждение, я получаю RuntimeWarning: overflow encountered in ubyte_scalars. Я не могу понять причину этого. Есть идеи, какую ошибку я совершаю?

1 Ответ

2 голосов
/ 06 октября 2019

Это может быть связано с типом ... попробуйте это

op =  np.absolute(int(img[i, j+1]) - int(img[i, j-1])) + np.absolute(int(img[i-1, j]) - int(img[i, j-1]))

немного пояснения;opencv использует тип uint8 с диапазоном 0-255. После добавления 2 unit8 значений, превышающих 255, появляется сообщение о предупреждении

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...