1

为什么bwdistimhmin图像完全是黑色的?当我检查工作区中的两个矩阵时,这些值看起来不错。您可以在 Matlab 中运行此代码来检查它。预期的结果是一个灰度图像,其中每个连接组件的中心具有低强度,而连接组件的边缘具有高强度。边缘的像素距离离质心较远,距离值较高。如果距离值被认为是强度,则边缘处的强度很高。

将 1 视为要进行距离变换的连接分量,而 0 只是背景。我希望背景为0。

image = zeros(5,5);
image(2,2) = 1;
image(4,4) = 1;

binary = im2bw(image,graythresh(image));
distance = bwdist(binary,'cityblock');
hminima = imhmin(distance,5);

figure; imshow(binary)
figure; imshow(distace)
figure; imshow(hminima)

所需的结果是这样的。

在此处输入图像描述

4

1 回答 1

2

我不知道我是否理解这个问题,但从最近的编辑看来你想要这条线

figure; imshow(distace)

看起来像您发布的图像。要做到这一点,您必须了解 imshow 生成灰度图像,将 0 映射为黑色,将 1 映射为白色。在您的示例中,distance从 0 到 5 不等。如果您使用以下代码

scaledDistance = distance/max(distance(:));
figure; imshow(scaledDistance)

您将获得灰度图像,而不仅仅是两个点。如果您使用此代码:

scaledDistance = distance/max(distance(:));
figure; imshow(1 - scaledDistance)

它将被反转为与您发布的图像相似。

于 2016-08-31T18:30:28.713 回答