Свертка с ядром 3х3 не работает

, если вам неудобно возвращать адреса и иметь только одну переменную, например. целочисленное значение для возврата, вы можете даже приписать его в (void *) перед его передачей, а затем, когда вы соберете его в основном, снова введите его в (int). У вас есть значение, не вызывая уродливых предупреждений.

0
задан Paradox 19 March 2019 в 19:43
поделиться

1 ответ

За исключением отсутствующей части импорта модуля, в основном, ваши коды верны.

Выходное изображение пустое, как белое, верно? Основной причиной является значение фильтра, превышающее диапазон RGB, 0 ~ 255.

При применении фильтра вы должны держать диапазон выходных данных по-прежнему в пределах 0 ~ 255. То есть

k = np.array(([2, 2, 2], [2, 3, 2], [2, 2, 2]), np.float64)
k = k / 19

Blurred image

Таким образом, для простого гладкого фильтра это будет

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.

Sobel sample

Вернемся к началу, я предлагаю вам вставить также часть импорта, которую вы использовали. Это поможет другим понять, что ваша проблема не связана с отсутствием импорта:

import cv2
import matplotlib.pyplot as plt
import numpy as np
0
ответ дан Gelion 19 March 2019 в 19:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: