在Matlab中,我想要显示灰度图像的梯度幅值和方向。以下是我正在尝试的代码:
然而,gmag和gdir似乎只被量化为两个值:黑色和白色。在gmag和gdir中的每个像素要么是黑色,要么是白色。我的图像本身具有梯度幅度和方向的范围。为什么这些不显示在gmag和gdir图像中?是的,我希望gmag对于梯度为零的像素具有纯黑色,并且对于具有最大梯度的像素具有纯白色,但我也希望在这些之间的梯度中具有一系列灰度值。同样地,在gdir中,我希望表示角度范围的一系列灰度值。
image = imread('gray_image.bmp');
[gmag, gdir] = imgradient(image);
figure, imshow(image);
figure, imshow(gmag);
figure, imshow(gdir);
然而,gmag和gdir似乎只被量化为两个值:黑色和白色。在gmag和gdir中的每个像素要么是黑色,要么是白色。我的图像本身具有梯度幅度和方向的范围。为什么这些不显示在gmag和gdir图像中?是的,我希望gmag对于梯度为零的像素具有纯黑色,并且对于具有最大梯度的像素具有纯白色,但我也希望在这些之间的梯度中具有一系列灰度值。同样地,在gdir中,我希望表示角度范围的一系列灰度值。
例如,这是灰度图像:
这是gmag:
这是gdir:
为什么gmag和gdir只显示黑色或白色,没有中间的灰度值?