#matlab #image-processing
#matlab #обработка изображений
Вопрос:
У меня есть сигнал u, и я использовал следующий код для вычисления градиента: gradx_u = [diff(u,1,1);zeros(1,size(u,2))]; grady_u = [diff(u,1,2) zeros(size(u,1),1)];
Проблема в том, что я получаю нулевой вектор для gradx_u. Например, если я беру вектор [0.1 0.22 0.3 0.5] как u, я получаю: gradx_u = [ 0 0 0 0] grady_u = [0.1200 0.0800 0.2000 0]
Я очень признателен, если кто-нибудь, пожалуйста, поможет мне с этой проблемой.
Комментарии:
1. Можете ли вы иметь как
x
иy
градиент одномерного сигнала? Я предполагаю, что сигнал, на который вы ссылаетесь, находится в пространственной области.diff(u,1,1)
вернет ноль, поскольку нет вертикальных соседей для сравнения / использования для получения производной.2. Большое спасибо. Да, сигнал находится в пространственной области. Это правда. Вертикальная составляющая отсутствует, поэтому я получаю ноль для gradx. Спасибо.