首先介绍一下霍夫变换——原博主超链接https://blog.csdn.net/fishmemory/article/details/51496190
霍夫变换可以提取图像的几何特征,监测直线甚至监测圆或椭圆等任意形状物体。
官方示例代码:
/ An example finding linear features using the HoughTransform.
// Load an image and compute NDVI.
var image = ee.Image('LANDSAT/LC08/C01/T1_TOA/LC08_033032_20170719');
var ndvi = image.normalizedDifference(['B5', 'B4']);
// Apply a Canny edge detector.
var canny = ee.Algorithms.CannyEdgeDetector({
image: ndvi,
threshold: 0.4
}).multiply(255);
// Apply the Hough transform.
var h = ee.Algorithms.HoughTransform({
image: canny,
gridSize: 256,
inputThreshold: 50,
lineThreshold: 100
});
// Display.
Map.setCenter(-103.80140, 40.21729, 13);
Map.addLayer(image, {bands: ['B4', 'B3', 'B2'], max: 0.3}, 'source_image');
Map.addLayer(canny.updateMask(canny), {min: 0, max: 1, palette: 'blue'}, 'canny');
Map.addLayer(h.updateMask(h), {min: 0, max: 1, palette: 'red'}, 'hough');
先利用CannyEdgeDetector函数提取NDVI图像的边界,然后利用霍夫变换提取其直线特征。
效果如下(蓝色线为边界,红色线为霍夫变换结果):