gpt4 book ai didi

matlab - 使用Matlab检测十字中心点

转载 作者:太空宇宙 更新时间:2023-11-03 19:20:04 25 4
gpt4 key购买 nike

alt text

你好,我有一张如上图所示的图片。我可以检测十字的中心点并使用 Matlab 输出结果吗?谢谢。

最佳答案

给你。我假设你有图像工具箱,因为如果你没有,那么你可能不应该尝试做这种事情。但是,我相信所有这些功能都可以通过卷积来实现。我对您上面提供的图像进行了此处理,并获得了点 (139,286),其中 138 是行,268 是列。

1.将图像转换为二值图像:

bw = bw2im(img, .25);

其中 img 是原始图像。根据图像的不同,您可能需要调整第二个参数(范围从 0 到 1),以便您只得到十字。不要担心十字没有完全连接,因为我们会在下一步中解决这个问题。

2.放大图像以连接零件。我不得不这样做两次,因为我必须将二进制图像转换的阈值设置得如此低(图像的某些部分非常暗)。膨胀本质上只是在现有白色像素周围添加像素(我也会在将二进制图像发送到 bwmorph 时反转二进制图像,因为这些操作是针对白色像素进行的,这些像素的值为 1)。

bw2 = bwmorph(~bw, 'dilate', 2);

最后一个参数表示要进行多少次膨胀操作。

3.将图像缩小到一个点。

bw3 = bwmorph(bw2, 'shrink',Inf);

同样,最后一个参数表示执行操作的次数。在本例中,我输入了 Inf,它会缩小直到只有一个像素为白色(换句话说是 1)。

4.找到仍然是1的像素。

[i,j] = find(bw3);

这里,i 是行,j 是 bw3 中像素的列,使得 bw3(i,j) 等于 1。所有其他像素在 bw3 中应为 0。

可能还有其他方法可以使用 bwmorph 执行此操作,但我认为这种方法效果很好。您可能还需要根据图片进行调整。如果需要,我可以包含每个步骤的图像。

关于matlab - 使用Matlab检测十字中心点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2242120/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com