gpt4 book ai didi

google-maps - 如何使用图像处理识别 Google map 图像中的树木?

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

我试图在给定静态 map 图像(左图)的情况下大致找到被树木覆盖的区域。

我想到的方法涉及对图像进行逐像素分析,最初找出“更绿”的像素(使用 HSV 配色方案提取色调值)。

我意识到,在黎明或黄昏拍摄的一些图像中,树木实际上可能没有任何绿色,可能只是呈现深灰色/黑色。虽然那些是在中午拍摄的,但看起来是亮绿色。所以我尝试使用图像阈值并获得了不错的结果(右图):

但我仍然不满意,因为建筑物的阴影或深色物体可能会给我误报。

我想利用 Stack Overflow 上一些开发人员的经验,并建议在这种情况下哪种图像处理工具和方法能给我最好的结果?

最佳答案

-threshold Y% 的问题在于:它会将足够暗的所有 像素转换为黑色!

如果您的图像中有其他深色(深棕色、深蓝色、深红色、深灰色或黑色),您会错误地将其识别为“木头”。

如果我没理解错的话,您只是在寻找那些像素,它们是某种绿色或深绿色。

因此,我建议使用以下命令的某些变体来对您自己的方法进行基准测试:

compare                              \
-size 600x600 \
-fuzz 30% \
http://i.stack.imgur.com/kqMtt.png \
xc:'darkgreen' \
output-1.png

您可以使用“#006400”的相应颜色值代替“darkgreen”,它是相同的:

compare                              \
-size 600x600 \
-fuzz 30% \
http://i.stack.imgur.com/kqMtt.png \
xc:'#006400' \
output-2.png

上面的compare 命令从两个输入图像创建了一个output-1.png,具有以下特征:

  1. 将原始图像与动态创建的 (xc:) 600x600 像素色 block “深绿色”进行比较;
  2. 输出将原始图像显示为浅色背景;
  3. 输出显示红色像素,其中原始图像的各个像素在考虑了 30% 的“模糊因子”(其中“0%”表示准确 颜色值匹配);
  4. 输出显示白色/半透明像素,其中原始图像的各个像素类似于颜色“深绿色”(在 30% 的模糊因子内)。

这是并排比较的结果:

Side by side comparison of original image with resulting image. The original image serves as a pale background. Red pixels show up where the original image is NOT 'darkgreen' within 30% fuzz factor.

您当然可以使用模糊因子以及“深绿色”颜色值的精确定义。以下是 -fuzz 25% 的结果:

Side by side comparison of original image with resulting image. The original image serves as a pale background. Red pixels show up where the original image is NOT 'darkgreen' within 25% fuzz factor.

如果您希望比较显示反色(红色像素显示在原始图像具有绿色的位置,透明/白色显示在像素非绿色的位置),请使用 'darkgreen' 的反色作为比较色 block (这是某种粉红色,顺便说一句),还有一个不同的模糊因素:

compare                              \
-size 600x600 \
-fuzz 70% \
http://i.stack.imgur.com/kqMtt.png \
xc:'#ff9bff' \
output-3.png

现在的结果是:

Side by side comparison of original image with resulting image. The original image serves as a pale background. Red pixels show up where the original image is not 'light-pink' (or IS 'darkgreen') within 25% fuzz factor.

如果您希望输出NOT将原始图像显示为浅色背景,则将-compose src 添加到您的命令(s ):

compare                              \
-size 600x600 \
-fuzz 70% \
http://i.stack.imgur.com/kqMtt.png \
xc:'#ff9bff' \
-compose src \
output-4.png

Side by side comparison of original image with resulting image. The original image serves no longer as the pale background picture. Red pixels show up where the original image is not 'light-pink' (or IS 'darkgreen') within 25% fuzz factor. White pixels are the ones which were non-greenish in the original image.

您还可以将突出显示“delta”像素的红色更改为其他颜色。使用黑色:

compare                              \
-highlight-color black \
-size 600x600 \
-fuzz 60% \
http://i.stack.imgur.com/kqMtt.png \
xc:'#ff9bff' \
-compose src \
output-5.png

您现在可以将上一个命令的结果用作“掩码”。将该蒙版叠加到原始图像上,并以一种让图像的“仅树”部分出现在结果中的方式组合它们,并去除所有其他部分。

关于google-maps - 如何使用图像处理识别 Google map 图像中的树木?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27330123/

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