функция градиента () не работает с изображениями - PullRequest
2 голосов
/ 28 ноября 2010

У меня быстрый вопрос. Я пытаюсь вычислить 2D-градиент изображения с помощью функции gradient() в MATLAB, но он не работает. В частности, вот мой код (изображение, которое я использую в оттенках серого):

im = imread('C:\yosemite1.bmp'); g = FindImageGradients(im);

Я получаю следующую ошибку:

??? Ошибка при использовании ==> rdivide Integers может быть объединен только с целыми числами тот же класс, или скалярные двойники.

Ошибка в ==> градиенте на 75 g (2: n-1, :) = (f (3: n,:) - f (1: n-2,:)) ./ h (:, единицы (p, 1));

Есть какие-нибудь подсказки, как это решить?

1 Ответ

2 голосов
/ 28 ноября 2010

Ваши данные изображения, вероятно, читаются как целые числа в диапазоне [0,255] (для 8 бит на канал цвета), поэтому тип im равен uint8 или другой тип типа int. Попробуйте преобразовать его в single или double:

g = FindImageGradients(single(im));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...