前言:
由于遥感图像通常巨大,opencv自带的imread函数可能读取图像失败,所以用gdal库写个readTif函数;自带的floodfill函数运行会时间太久,所以也自己写叭。。。
先看一下需求:
算法流程:
1、以原图像的补集作为Mask,用来限制膨胀结果;
2、以带有白色边框的黑色图像为初始Marker,用SE对其进行连续膨胀,直至收敛;
3、最后对Marker取补即得到最终图像,与原图相减可得到填充图像。
python代码:
# -*- coding:utf-8 -*-
import numpy as np
import cv2
class kdtc():
def __init__(self):
pass
def readTif(self,fileName):
import gdal
dataset = gdal.Open(fileName)
if dataset == None:
print(fileName+"文件无法打开")
return
im_width = dataset.RasterXSize <