how to get gradient of an image

3 visualizaciones (últimos 30 días)
Rawan hamdi
Rawan hamdi el 25 de Mzo. de 2013
Movida: DGM el 29 de Dic. de 2023
hi im having a hyperspectral image and im trying to get the gradient operators of the horizontal and vertical directions but i can't any help? Thanks

Respuesta aceptada

Walter Roberson
Walter Roberson el 8 de Abr. de 2013
for band = 1 : size(X,3)
[GX(:,:,band), GY(:,:,band)] = gradient(X(:,:,band));
end
Note you get out two matrices the same size as the original.
  9 comentarios
Rawan hamdi
Rawan hamdi el 9 de Abr. de 2013
Thank you very much.
i have a question, how can i obtain the cost function :
u = arg min(||g-u||).^2 + lambda.R(u) where the term "(||g-u||).^2" is the data fidelity term between the original clean image and the noisy image and R(u) is a regularization parameter. Thanks
Walter Roberson
Walter Roberson el 9 de Abr. de 2013
I recommend you start a new question for that.

Iniciar sesión para comentar.

Más respuestas (2)

Image Analyst
Image Analyst el 25 de Mzo. de 2013
The Image Processing Toolbox has imgradient() and imgradientxy() functions.
  5 comentarios
Image Analyst
Image Analyst el 8 de Abr. de 2013
Movida: DGM el 29 de Dic. de 2023
That does not make sense to me. In the lateral x,y direction you have units of "per pixel" but in the Z direction since the planes are different wavelengths, not distance in pixels, the gradient is not a spatial gradient. It would have units of "per wavelength". And you certainly wouldn't want a 3D gradient with spatial coordinates mixed with wavelength coordinates. It makes no sense, at least not to me.
Rawan hamdi
Rawan hamdi el 8 de Abr. de 2013
Movida: DGM el 29 de Dic. de 2023
Okay the thing is im that im looping on both x and y and getting the gradient in the spectral domain (z direction) the image i have is [280,307,191] so i'm trying to get the gradient of each pixel in the spectral domain and having the result as a matrix same size of the image,What should i do? Any help would be much appreciated

Iniciar sesión para comentar.


Anand
Anand el 8 de Abr. de 2013
Try this:
[~,~,Gy,Gx] = edge(imread('cameraman.tif'),'sobel');

Categorías

Más información sobre Hyperspectral Image Processing en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by