, если вам неудобно возвращать адреса и иметь только одну переменную, например. целочисленное значение для возврата, вы можете даже приписать его в (void *) перед его передачей, а затем, когда вы соберете его в основном, снова введите его в (int). У вас есть значение, не вызывая уродливых предупреждений.
За исключением отсутствующей части импорта модуля, в основном, ваши коды верны.
Выходное изображение пустое, как белое, верно? Основной причиной является значение фильтра, превышающее диапазон RGB, 0 ~ 255.
При применении фильтра вы должны держать диапазон выходных данных по-прежнему в пределах 0 ~ 255. То есть
k = np.array(([2, 2, 2], [2, 3, 2], [2, 2, 2]), np.float64)
k = k / 19
Таким образом, для простого гладкого фильтра это будет
k = np.array(([1, 1, 1], [1, 1, 1], [1, 1, 1]), np.float64)
k = k / 9
Как насчет Собеля (по горизонтали)?
k = np.array(([1, 0, -1], [2, 0, -2], [1, 0, -1]), np.float64)
Да, оставьте k как k.
Вернемся к началу, я предлагаю вам вставить также часть импорта, которую вы использовали. Это поможет другим понять, что ваша проблема не связана с отсутствием импорта:
import cv2
import matplotlib.pyplot as plt
import numpy as np