我正在尝试转换图像(例如下面的图像),然后仅获取灰色像素并将其作为GeoJSON多边形返回。
我已经有一个使用ImageMagick的bash脚本,该脚本将图像作为条目并将其转换为.txt文件
convert IMAGE_URL -crop "331x230+82+50" "./tmp/IMAGE_CONVERTED.txt"
从这里,我运行另一个bash脚本,该脚本循环遍历所有.txt文件,并检查像素是否为灰色。如果是这样,像素将进入阵列。
LC_ALL="C" awk -f scripts/parse-colors.awk "./tmp/IMAGE_CONVERTED.txt" > "./geojson/IMAGE_CONVERTED.geojson"
scripts / parse-colors.awk
if (isGrey(r, g, b)) {
printf "%s{\"type\":\"Feature\",\"properties\":{},\"geometry\":{\"type\":\"Point\",\"coordinates\":[%.2f,%.2f]}}", sep, LONGITUDE, LATITUDE
sep = ","
}
完成此步骤后,我将得到一个巨大的GeoJSON,其中包含点/像素。那就是我遇到的问题,我不确定如何将这些点转换为多边形。
此外,使用此脚本,应该删除数组中的许多像素,因为它们已经在形状内了。
那么,我该如何“清理”这些像素并从中创建一个多边形?
如果需要,解决方案可以使用javascript。我看到了Turf库,但不确定如何在上下文中使用它,以及是否可以解决问题。