主权项 |
一种基于全色遥感影像的城市水体提取方法,其特征在于包括以下步骤:(1)遥感影像预处理:利用中值滤波抑制遥感影像中的噪声;(2)最优尺度选取:在经步骤(1)预处理的图像中,选定最小尺度、最大尺度以及尺度变化步长,依次计算全局平均方差,求得最优空间尺度;(3)均变纹理生成:依据步骤(2)中所得的最优空间尺度,遍历遥感影像中的各个像素,分别计算均变方差,进而生成遥感影像的均变方差纹理图,具体生成方法如下:(31)依据所得的最优空间尺度scale<sub>best</sub>,在原始遥感影像上设置一个大小为(2*scale<sub>best</sub>+1)×(2*scale<sub>best</sub>+1)的窗口;(32)不断移动该窗口,对于像元im(i,j),窗口中的所有像元光谱值记为im(i‑scale<sub>k</sub>:i+scale<sub>k</sub>,j‑scale<sub>k</sub>:j+scale<sub>k</sub>),每个窗口中的像元总个数记作N=(2*scale<sub>best</sub>+1)*(2*scale<sub>best</sub>+1);然后将其按照列方向排列记作im<sub>1</sub>,im<sub>2</sub>,…,im<sub>N</sub>,将窗口中所有像元的行坐标和列坐标依次记作row<sub>N</sub>和col<sub>N</sub>;(33)依次对每个窗口中的所有像元的光谱值进行最小二乘平面拟合,拟合方程为:Ax+By+Cz+1=0,将待拟合的N个像元表示成以下矩阵形式:<maths num="0001"><math><![CDATA[<mrow><mfenced open = "[" close = "]"><mtable><mtr><mtd><mrow><msub><mi>row</mi><mn>1</mn></msub></mrow></mtd><mtd><mrow><msub><mi>col</mi><mn>1</mn></msub></mrow></mtd><mtd><mrow><msub><mi>im</mi><mn>1</mn></msub></mrow></mtd></mtr><mtr><mtd><mrow><msub><mi>row</mi><mn>2</mn></msub></mrow></mtd><mtd><mrow><msub><mi>col</mi><mn>2</mn></msub></mrow></mtd><mtd><mrow><msub><mi>im</mi><mn>2</mn></msub></mrow></mtd></mtr><mtr><mtd><mo>.</mo></mtd><mtd><mo>.</mo></mtd><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd><mtd><mo>.</mo></mtd><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd><mtd><mo>.</mo></mtd><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mrow><msub><mi>row</mi><mi>N</mi></msub></mrow></mtd><mtd><mrow><msub><mi>col</mi><mi>N</mi></msub></mrow></mtd><mtd><mrow><msub><mi>im</mi><mi>N</mi></msub></mrow></mtd></mtr></mtable></mfenced><mfenced open = "[" close = "]"><mtable><mtr><mtd><mi>A</mi></mtd></mtr><mtr><mtd><mi>B</mi></mtd></mtr><mtr><mtd><mi>C</mi></mtd></mtr></mtable></mfenced><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mo>-</mo><mn>1</mn></mtd></mtr><mtr><mtd><mo>-</mo><mn>1</mn></mtd></mtr><mtr><mtd><mo>-</mo><mn>1</mn></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FDA0000933688380000011.GIF" wi="655" he="310" /></maths>依据最小二乘法则得到平面拟合系数为:<maths num="0002"><math><![CDATA[<mrow><mfenced open = "[" close = "]"><mtable><mtr><mtd><mi>A</mi></mtd></mtr><mtr><mtd><mi>B</mi></mtd></mtr><mtr><mtd><mi>C</mi></mtd></mtr></mtable></mfenced><mo>=</mo><msup><mfenced open = "[" close = "]"><mtable><mtr><mtd><mrow><mo>Σ</mo><msubsup><mi>row</mi><mi>h</mi><mn>2</mn></msubsup></mrow></mtd><mtd><mrow><mo>Σ</mo><msub><mi>row</mi><mi>h</mi></msub><msub><mi>col</mi><mi>h</mi></msub></mrow></mtd><mtd><mrow><mo>Σ</mo><msub><mi>row</mi><mi>h</mi></msub><mi>i</mi><mi>m</mi><mrow><mo>(</mo><msub><mi>row</mi><mi>h</mi></msub><mo>,</mo><msub><mi>col</mi><mi>h</mi></msub><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mo>Σ</mo><msub><mi>col</mi><mi>h</mi></msub><msub><mi>row</mi><mi>h</mi></msub></mrow></mtd><mtd><mrow><mo>Σ</mo><msubsup><mi>col</mi><mi>h</mi><mn>2</mn></msubsup></mrow></mtd><mtd><mrow><mo>Σ</mo><msub><mi>col</mi><mi>h</mi></msub><mi>i</mi><mi>m</mi><mrow><mo>(</mo><msub><mi>row</mi><mi>h</mi></msub><mo>,</mo><msub><mi>col</mi><mi>h</mi></msub><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mo>Σ</mo><mi>i</mi><mi>m</mi><mrow><mo>(</mo><msub><mi>row</mi><mi>h</mi></msub><mo>,</mo><msub><mi>col</mi><mi>h</mi></msub><mo>)</mo></mrow><msub><mi>row</mi><mi>h</mi></msub></mrow></mtd><mtd><mrow><mo>Σ</mo><mi>i</mi><mi>m</mi><mrow><mo>(</mo><msub><mi>row</mi><mi>h</mi></msub><mo>,</mo><msub><mi>col</mi><mi>h</mi></msub><mo>)</mo></mrow><msub><mi>col</mi><mi>h</mi></msub></mrow></mtd><mtd><mrow><mo>Σ</mo><mi>i</mi><mi>m</mi><msup><mrow><mo>(</mo><msub><mi>row</mi><mi>h</mi></msub><mo>,</mo><msub><mi>col</mi><mi>h</mi></msub><mo>)</mo></mrow><mn>2</mn></msup></mrow></mtd></mtr></mtable></mfenced><mrow><mo>-</mo><mn>1</mn></mrow></msup><mfenced open = "[" close = "]"><mtable><mtr><mtd><mrow><mo>Σ</mo><msub><mi>row</mi><mi>h</mi></msub></mrow></mtd></mtr><mtr><mtd><mrow><mo>Σ</mo><msub><mi>col</mi><mi>h</mi></msub></mrow></mtd></mtr><mtr><mtd><mrow><mo>Σ</mo><mi>i</mi><mi>m</mi><mrow><mo>(</mo><msub><mi>row</mi><mi>h</mi></msub><mo>,</mo><msub><mi>col</mi><mi>h</mi></msub><mo>)</mo></mrow></mrow></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FDA0000933688380000012.GIF" wi="1934" he="277" /></maths>上述公式中,h代表N个像元中的第h个像元;(34)计算窗口中所有像元光谱值至拟合平面的距离:<maths num="0003"><math><![CDATA[<mrow><msub><mi>d</mi><mi>h</mi></msub><mo>=</mo><mfrac><mrow><mi>a</mi><mi>b</mi><mi>s</mi><mrow><mo>(</mo><mi>A</mi><mo>×</mo><msub><mi>row</mi><mi>h</mi></msub><mo>+</mo><mi>B</mi><mo>×</mo><msub><mi>col</mi><mi>h</mi></msub><mo>+</mo><mi>C</mi><mo>×</mo><mi>i</mi><mi>m</mi><mo>(</mo><msub><mi>row</mi><mi>h</mi></msub><mo>,</mo><msub><mi>col</mi><mi>h</mi></msub><mo>)</mo></mrow><mo>+</mo><mn>1</mn><mo>)</mo></mrow><msqrt><mrow><msup><mi>A</mi><mn>2</mn></msup><mo>+</mo><msup><mi>B</mi><mn>2</mn></msup><mo>+</mo><msup><mi>C</mi><mn>2</mn></msup></mrow></msqrt></mfrac><mo>,</mo><mi>h</mi><mo>=</mo><mn>1</mn><mo>,</mo><mn>2</mn><mo>,</mo><mo>...</mo><mo>,</mo><mi>N</mi><mo>,</mo></mrow>]]></math><img file="FDA0000933688380000021.GIF" wi="1358" he="151" /></maths>其中abs(*)是绝对值算子;计算该窗口中的各个像元所对应的距离,求得方差d<sub>var</sub><maths num="0004"><math><![CDATA[<mrow><msub><mi>d</mi><mrow><mi>m</mi><mi>e</mi><mi>a</mi><mi>n</mi></mrow></msub><mo>=</mo><mfrac><mrow><munderover><mo>Σ</mo><mrow><mi>h</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></munderover><msub><mi>d</mi><mi>h</mi></msub></mrow><mi>N</mi></mfrac></mrow>]]></math><img file="FDA0000933688380000022.GIF" wi="277" he="199" /></maths><maths num="0005"><math><![CDATA[<mrow><msub><mi>d</mi><mi>var</mi></msub><mo>=</mo><mfrac><mrow><munderover><mo>Σ</mo><mrow><mi>h</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></munderover><msup><mrow><mo>(</mo><msub><mi>d</mi><mi>h</mi></msub><mo>-</mo><msub><mi>d</mi><mrow><mi>m</mi><mi>e</mi><mi>a</mi><mi>n</mi></mrow></msub><mo>)</mo></mrow><mn>2</mn></msup></mrow><mi>N</mi></mfrac></mrow>]]></math><img file="FDA0000933688380000023.GIF" wi="450" he="198" /></maths>将d<sub>var</sub>作为该窗口中心像元的均变方差纹理,遍历所有点,即生成均变方差纹理图im<sub>var_texture</sub>;遍历所有像素点,搜索均变方差纹理图im<sub>var_texture</sub>的最大值和最小值,分别记作im<sub>var_texture</sub>_max和im<sub>var_texture</sub>_min,对每个像素点作如下操作用于将纹理值拉伸至[0,255]:<maths num="0006"><math><![CDATA[<mrow><msub><mi>im</mi><mrow><mi>var</mi><mo>_</mo><mi>t</mi><mi>e</mi><mi>x</mi><mi>t</mi><mi>u</mi><mi>r</mi><mi>e</mi></mrow></msub><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>=</mo><mn>255</mn><mo>*</mo><mfrac><mrow><mo>(</mo><msub><mi>im</mi><mrow><mi>var</mi><mo>_</mo><mi>t</mi><mi>e</mi><mi>x</mi><mi>t</mi><mi>u</mi><mi>r</mi><mi>e</mi></mrow></msub><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo><mo>-</mo><msub><mi>im</mi><mrow><mi>var</mi><mo>_</mo><mi>t</mi><mi>e</mi><mi>x</mi><mi>t</mi><mi>u</mi><mi>r</mi><mi>e</mi></mrow></msub><mo>_</mo><mi>m</mi><mi>i</mi><mi>n</mi><mo>)</mo></mrow><mrow><mo>(</mo><msub><mi>im</mi><mrow><mi>var</mi><mo>_</mo><mi>t</mi><mi>e</mi><mi>x</mi><mi>t</mi><mi>u</mi><mi>r</mi><mi>e</mi></mrow></msub><mo>_</mo><mi>m</mi><mi>a</mi><mi>x</mi><mo>-</mo><msub><mi>im</mi><mrow><mi>var</mi><mo>_</mo><mi>t</mi><mi>e</mi><mi>x</mi><mi>t</mi><mi>u</mi><mi>r</mi><mi>e</mi></mrow></msub><mo>_</mo><mi>m</mi><mi>i</mi><mi>n</mi><mo>)</mo></mrow></mfrac><mo>;</mo></mrow>]]></math><img file="FDA0000933688380000024.GIF" wi="1181" he="158" /></maths>(4)最优阈值分割:基于步骤(3)中所得遥感影像的均变方差纹理图,人工选定分割阈值,对方差纹理图进行分割,选取大于给定面积阈值的斑块,进行闭运算,获得最终水体信息。 |