How to get the gradient of a pixel in an image?
5 次查看(过去 30 天)
显示 更早的评论
I am doing block processing on a fingeprint image and I will like to get the gradient of all the pixels in their x and y components separately using a sobel filter. I am doing this block by block.
I saw the function imgradient() but after reading the documentation it seems to be getting the gradient for the whole image that is passed to it, which in my case will be the block, except i understood wrongly, and if i did please help me out or is there any function i can use to get the gradient of just one pixel in the image block.
0 个评论
采纳的回答
Image Analyst
2020-4-23
imgradient() gets the gradient at every pixel, for every pixel in the image. The gradient cannot be computed from a single pixel because you need neighboring pixels to determine the slope and direction. Let's say you had one single pixel and it's value is 50. So what is it's gradient? It does not have a gradient because it has no neighbors and thus no slope from there to anywhere else.
If you want, you can call imgradient() on a whole image, or on a sub-image (block). It does not make sense to get the gradient of just one pixel, like I said. You get the gradient for a bunch of pixels and every pixels will have a gradient value associated with it that was determined by looking at neighboring pixels.
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!