基于matlab的遥感图像水陆分割代码
时间: 2023-11-04 18:09:42 浏览: 189
以下是基于MATLAB的遥感图像水陆分割代码示例:
```matlab
clc; clear all; close all;
% 读入遥感图像
I = imread('image.tif');
% 转换图像为灰度图像
I_gray = rgb2gray(I);
% 计算图像的梯度
G = imgradient(I_gray);
% 对梯度图像进行二值化处理
T = graythresh(G);
BW = imbinarize(G, T);
% 对二值化图像进行形态学操作,去除小的噪点
BW = bwareaopen(BW, 50);
% 进行水陆分割
se = strel('disk', 5);
BW = imclose(BW, se);
BW = imfill(BW, 'holes');
BW = imopen(BW, se);
% 显示分割结果
figure; imshow(BW); title('Water-Land Segmentation Result');
```
上述代码中,首先读入遥感图像,然后将图像转换为灰度图像。接着计算图像的梯度,并对梯度图像进行二值化处理,得到二值化图像。然后通过形态学操作去除小的噪点,最后进行水陆分割,得到分割结果并显示。其中,使用的形态学操作包括闭运算、填充孔洞和开运算。
阅读全文