📄 remove_bridges.pro
字号:
;-----------------------------------------------------------------
pro remove_bridges
;读入纽约城市的影像
xsize = 768 ;像素
ysize = 512 ;像素
img = read_binary(filepath('nyny.dat', subdir = ['examples', 'data']), data_dims = [xsize, ysize])
;增强对比度
img = bytscl(img)
;创建一掩蔽影像
threshold_level = 70 ; 70是一经验值
mask =img lt threshold_level
;锐化影像
disk_size = 7
se = shift(dist(disk_size),disk_size / 2, disk_size / 2)
se = se le disk_size / 2
;对影像进行膨胀处理,删除细节部分
mask = dilate(erode(mask, se), se)
;对图像进行腐蚀处理
mask = erode(dilate(mask, se), se)
;删除小区域
label_img = label_region(mask)
labels = label_img[where(label_img ne 0)]; remove background
label = where(histogram(label_img) eq max(histogram(labels)))
mask = label_img eq label[0]
;创建一新影像,该影像中包含局部最小的区域
new_img = dilate(erode(img, se, /gray), se, /gray)
;使用原始影像替代新影像
new_img[where(mask eq 0)] = img[where(mask eq 0)]
;显示结果
print, 'Hit any key to end program.'
window, xsize = xsize, ysize = ysize
;在两图像之间切换产生动态感觉
flick, img, new_img
;删除窗口
wdelete
end
;-------------------------------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -