![00374114645074538127e5e306990e2c.png](https://i-blog.csdnimg.cn/blog_migrate/3649d3c56778e4b5d4ae1a888bee175c.jpeg)
前言
形态学建筑物指数MBI通过建立建筑物的隐式特征和形态学算子之间的关系进行建筑物的提取[1]。
原理
![742a6744b7577c44e1850e5d9152d26e.png](https://i-blog.csdnimg.cn/blog_migrate/05fa7a6f1b2a1fe2de8d2130f69c69f7.jpeg)
上图源自[2]。
实验数据
简单找了一张小图片:
![028092822fe3febf7b43e9b708c8ac2c.png](https://i-blog.csdnimg.cn/blog_migrate/8f9c99b3e771ffe53582227487dd14c2.jpeg)
代码
为了支持遥感图像,我的读写数据函数都是利用GDAL写的。
import numpy as np
import gdal
# 读取tif数据集
def readTif(fileName, xoff = 0, yoff = 0, data_width = 0, data_height = 0):
dataset = gdal.Open(fileName)
if dataset == None:
print(fileName + "文件无法打开")
# 栅格矩阵的列数
width = dataset.RasterXSize
# 栅格矩阵的行数
height = dataset.RasterYSize
# 波段数
bands = dataset.RasterCount
# 获取数据
if(data_width == 0 and data_he