data(chm_chablais3)
chm_chablais3 <- terra::rast(chm_chablais3)
# median filter
chm_chablais3 <- dem_filtering(chm_chablais3,
nl_filter = "Median", nl_size = 3,
sigma = 0
)$non_linear_image
# maxima detection and selection
maxi <- maxima_detection(chm_chablais3)
selected_maxi <- maxima_selection(maxi, chm_chablais3, dm = 1, dprop = 0.1)
# segmentation
seg_selected_maxi <- segmentation(selected_maxi, chm_chablais3)
# max value in segments
max_in_segment <- raster_zonal_stats(seg_selected_maxi , chm_chablais3)
# segmentation modification
seg_modif1 <- seg_adjust(seg_selected_maxi , max_in_segment,
chm_chablais3,
prop = 0.5
)
seg_modif2 <- seg_adjust(seg_selected_maxi , max_in_segment,
chm_chablais3,
prop = 0, min.value = 5, min.maxvalue = 10
)
# plot initial segmented image
# seg_selected_maxi[seg_selected_maxi == 0] <- NA
terra::plot(seg_selected_maxi %% 8, main = "Initial segments", col = rainbow(8))
# seg_modif1[seg_modif1 == 0] <- NA
terra::plot(seg_modif1 %% 8, main = "Modified segments 1", col = rainbow(8))
seg_modif2[seg_modif2 == 0] <- NA
terra::plot(seg_modif2 %% 8, main = "Modified segments 2", col = rainbow(8))
Run the code above in your browser using DataLab