Al momento, stai seguendo questa presentazione
- Vedrai gli aggiornamenti nel tuo feed del contenuto seguito
- Potresti ricevere delle email a seconda delle tue preferenze per le comunicazioni
A Natural-Rule-Based-Connection (NRBC) Method
Condividi 'A Natural-Rule-Based-Connection (NRBC) Method'
A Natural-Rule-Based-Connection (NRBC) Method for River Network Extraction from High-Resolution Imagery
Usage example (For details, please view the demonstration_html):
[water_mask_orgin, Mask_connected, edge_list]=NRBC ('.\Test_Data\WaterMask.tif', '.\Test_Data\NDVI.tif');
Introduction of the water body detection software package (NRBC).
This is a group of Matlab functions to detect and connect water body from satellite/airborne imagery.
The entire task is broken down into several relatively independent tasks, with the most important part NRBC published and can be open accessed [Here] (http://www.mdpi.com/2072-4292/7/10/14055).
This code project implements the Step 2: [River_Patch_Connection]. Please see my other project for the other steps.
The overall river detection task is broken down as:
1. Unsupervised classification of satellite imagery: (here we are using 8 band original Worldview-2 imagery) With the unsupervised classification result, the water clusters (classes) are automatically/adaptively chosen from all classes.
--> [Viusalize_of_Centres] module is designed for this purpose
2. When a refined water body is achieved, we need to further connect river segments to form topologically correct/completed rivers. This is a complicated stage with many steps. A image pyramid is generated, and topology at top level (downsampled imagery) is then deliver to the bottom level (original resolution imagery) Many rules are applied to test the potential connect-able river segments., such as the river direction and width consistence between neighbouring river segments. finally the gap is filled if it is a successful/ connect-able case.
--> [River_Patch_Connection] module is designed for this task with many functions.
3. After a complete water body, with complete/correct rivers been connected, is generated, the centerline of the rivers are generated. An improved morphological method that first skin the water mask and then remove the spurs is used. An alternative method is using the MEANSHIFT method, which is also implemented.
--> [River_Centerline] module is implemented for this purpose.
4. The bridge can also be detected after water body detection: bridges are detected, and regularized as rectangles The main idea is find the river connected areas, as seed for potential bridge locations, and then use rule to remove incorrect case and process the correct case.
--> [Bridge_Detection] module is designed for this purpose.
There are some other isolated functions which are not used in this mainstream, but still quite useful for other applications. such as the Image pyramid construction, non-linear fitting of points, etc.
Removed section
5. After the water classes are selected, a coarse water mask is generated. within this water mask, there are some mistaken areas, such as shadows, to refine the result, a SAR (here we use the Radarsat-2 HH SLC image) image is used to refined the result We separate the water from non-water, by separating the overall histogram into two , and a threshold is set appropriate to distinguish water from non-water by Mean backscatter value in SAR imagery --> [Histogram_Separation] package is designed for this purpose
Note: this section is removed now.
Removed section
Please cite this work as:
Zeng, C.; Bird, S.; Luce, J.J.; Wang, J. A Natural-Rule-Based-Connection (NRBC) Method for River Network Extraction from High-Resolution Imagery. Remote Sens. 2015, 7, 14055-14078.
Note
This entire project is for research purpose thus did not well-test. They may be many issues/bugs when you run with own data, please report any problem or improvement suggestion to: chqzeng@gmail.com
Cita come
chuiqing (2025). A Natural-Rule-Based-Connection (NRBC) Method (https://github.com/chqzeng/NRBC), GitHub. Recuperato .
Compatibilità della release di MATLAB
Compatibilità della piattaforma
Windows macOS LinuxTag Aggiungi tag
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Scopri Live Editor
Crea script con codice, output e testo formattato in un unico documento eseguibile.
- Closest_pt_in_8_Neigh
- Estimate_Centraline_Dir_Len
- Estimate_Patch_width
- ExportEdgelist2ShpFile
- Extend_Gap_CentralLine
- Image_Morph_connection
- Image_Pyrimad
- NRBC
- Neighour_patch_Connection
- Neighour_patch_filled
- River_Patch_connection
- Search_centralline_Segment_by_seed
- Search_neighour_patch_by_seed
- cleanedgelist
- curve_fitting_with_bspline
- dipstart.m
- edgelink
- findendsjunctions
- show
- splinefit
DIPimage/common/dipimage
- Contents.m
- afm_flatten
- aniso
- arcf
- arrangeslices
- array2im
- autocorrelation
- backgroundoffset
- bbox
- bclosing
- bdilation
- berosion
- bilateralf
- bmajority
- bopening
- bpropagation
- brmedgeobjs
- bskeleton
- cal_readnoise
- canny
- ced
- change_chroma
- change_gamma
- change_xyz
- chordlength
- clip
- closing
- closing_se
- color_rotation
- convolve
- coord2image
- correctshift
- countingframe
- countneighbours
- cpf
- crosscorrelation
- curvature
- curvature_thirion
- cut
- dcc
- deblock.m
- deltaim
- derivative
- dethessian
- detile
- dgg
- dilation
- dilation_se
- dip_initialise
- dip_morph_flavour
- dipaddpath
- dipanimate.m
- dipclf.m
- dipcrop.m
- dipdrawpolygon.m
- dipfig.m
- dipgetcoords.m
- dipgetimage.m
- dipgetpref
- diphist
- diphist2d
- dipinit.m
- dipisosurface.m
- diplink.m
- diplooking.m
- dipmapping.m
- dipmaxaspect.m
- dipmenus
- dipmex
- diporien.m
- dippan.m
- dipprofile.m
- dipprojection.m
- diproi
- dipsetpref
- dipshow.m
- dipstackinspect.m
- dipstep.m
- diptest.m
- diptruesize.m
- dipzoom.m
- displaylabelnumbers
- dpr
- drawline
- drawpolygon
- dt.m
- dx
- dxx
- dxy
- dxz
- dy
- dyy
- dyz
- dz
- dzz
- entropy
- erfclip
- erosion
- erosion_se
- extend
- fillholes
- find_lambda
- findlocalshift
- findlocmax
- findmaxima
- findminima
- findospeaks
- findshift
- fmmatch
- frc
- ft
- gabor
- gabor_click
- gaussf
- gaussf_adap
- gaussf_adap_banana
- gaussianblob
- gaussianedgeclip
- gaussianlineclip
- gdt
- get_subpixel
- getbranchpixel
- getendpixel
- getlinkpixel
- getparams.m
- getsinglepixel
- gradientvector
- gradmag
- granulometry
- gvf
- hessian
- hist2image
- hist_equalize
- hitmiss
- hmaxima
- hminima
- ht
- huecorr
- hull
- hybridf
- ift
- im2array
- im2mat
- im2snake
- iso_luminance_lines
- isophote_curvature
- jacobi
- joinchannels
- jpeg_quality_score
- kuwahara
- label
- label
- laplace
- laplace_min_dgg
- laplace_plus_dgg
- lfmse
- luminance_steered_erosion
- luminance_steered_erosion
- lut
- mae
- make_gamut
- mappg
- mat2im
- maxf
- maxima
- mcd
- mdhistogram
- measure
- measure_gamma_monitor
- measurehelp
- medif
- minf
- minima
- mirror
- mon_rgb2xyz
- mon_xyz2rgb
- monitor_icc
- morphscales
- mre
- mse
- msr2ds
- msr_remap
- mutualinformation
- nconv
- newcolorim
- newim
- newimar
- noise
- noisestd
- opening
- opening_se
- opticflow
- orientation4d
- orientationplot
- orientationspace
- out_of_gamut
- overlay
- overlay_confidence
- overlay_vector
- paircorrelation
- percf
- percf_adap
- percf_adap_banana
- phiphi
- pmd
- pmd_gaussian
- prewittf
- print_cmy2xyz
- print_xyz2cmy
- printer_icc
- psnr
- pst
- quadraturetensor
- radialmax
- radialmean
- radialmin
- radialsum
- ramp
- ramp1
- rankmax_opening
- rankmax_opening_se
- rankmin_closing
- rankmin_closing_se
- read_icc_profile.m
- readavi
- readim
- readrawim
- readroiim
- readtimeseries
- rebin
- reconstruction
- relabel
- resample
- rgb_to_border
- rotation
- rr
- scale2rgb
- scalespace
- scan_rgb2xyz
- scan_xyz2rgb
- scanner_calibration
- scanner_icc
- selectionf
- setlabels
- shift
- slice_ex
- slice_ex
- slice_op
- smooth
- snake2im
- snakedraw
- snakeminimize
- sobelf
- spectra2xyz
- split
- ssim
- stretch
- structf
- structuretensor
- structuretensor3d
- subpixlocation
- subsample
- testobject
- tframehessian
- threshold
- tikhonovmiller
- tile
- tophat.m
- umbra.m
- unif
- varif
- vdt
- vfc
- view5d
- waterseed
- watershed
- wiener
- write_icc_profile
- writeavi.m
- writedisplayavi
- writeim
- xx
- xx1
- yy
- yy1
- zz
- zz1
DIPimage/common/dipimage/@dip_image
- abs
- acos
- all
- and
- angle
- any
- asin
- atan
- atan2
- besselj
- cat
- ceil
- circshift
- class
- colorspace
- complex
- conj
- convhull
- cos
- cross
- ctranspose
- curl
- datatype
- det
- diag
- dip_array
- dip_image
- disp
- display
- divergence
- dot
- double
- eig
- eig_largest
- end
- eq
- erf
- exp
- expanddim
- eye
- find
- findcoord
- fix
- flipdim
- fliplr
- flipud
- floor
- ge
- gradient
- gt
- horzcat
- hypot
- imag
- imarfun
- imarsize
- imsize
- ind2sub
- inner
- int16
- int32
- int8
- inv
- isa
- iscolor
- iscolumn
- isempty
- isfinite
- isfloat
- isinf
- isinteger
- islogical
- ismatrix
- isnan
- isreal
- isrow
- isscalar
- istensor
- isvector
- iterate
- le
- length
- loadobj
- log
- log10
- log2
- logical
- lt
- max
- mean
- median
- min
- minus
- mod
- mpower
- mrdivide
- mtimes
- ndims
- ne
- norm
- not
- numel
- or
- outer
- percentile
- permute
- phase
- pinv
- plot
- plus
- pow10
- pow2
- power
- prod
- rdivide
- real
- repmat
- reshape
- rot90
- rotate
- round
- shiftdim
- sign
- sin
- single
- size
- sqrt
- squeeze
- std
- sub2ind
- subsasgn
- subsindex
- subsref
- sum
- svd
- tan
- times
- trace
- transpose
- uint16
- uint32
- uint8
- uminus
- unique
- uplus
- var
- vertcat
- xor
DIPimage/common/dipimage/@dip_image/private
- art2lab
- artdata.m
- cmy2cmyk
- cmy2rgb
- cmyk2cmy
- compute0array
- compute1
- compute2
- di_consistentphysdims
- di_convert
- di_create
- di_defaultphysdims
- di_defaultwhite
- di_diptype
- di_findphysdims
- di_findtype
- di_findtype
- di_findtypex
- di_firsterr
- di_iscomplex
- di_isdipimobj
- di_joinchannels
- di_mattype
- di_processarray
- di_setcolspace
- grey2lab
- grey2luv
- grey2rgb
- grey2xyz
- hcv2hsv
- hcv2rgb
- hsv2hcv
- lab2art
- lab2grey
- lab2lch
- lab2xyz
- lch2lab
- luv2xyz
- matlabver_ge
- preparetensors
- rgb2cmy
- rgb2grey
- rgb2hcv
- rgb2rgbnl
- rgb2xyz
- rgbnl2rgb
- xyz2grey
- xyz2lab
- xyz2luv
- xyz2rgb
- xyz2yxy
- xyzdata
- yxy2grey
- yxy2xyz
DIPimage/common/dipimage/@dip_measurement
- dataset
- dip_measurement
- disp
- display
- double
- end
- fieldnames
- horzcat
- isempty
- isfield
- length
- loadobj
- max
- min
- rmfield
- size
- struct
- subsasgn
- subsref
- vertcat
DIPimage/common/dipimage/aliases
- bclos
- bdila
- beros
- blurgauss
- blurunif
- bopen
- bprop
- bskel
- cropim
- dip_image_array
- dip_image_new
- ex_slice
- gauss_derivative
- gauss_fourier
- gaussf_iir
- gclos
- gdila
- geros
- get_xyz
- gopen
- grey
- hist2d
- isosurfaceplot
- overlay_label
- readcolorim
- readgrayim
- readgrayim
- set_xyz
- thresh
- thresh_isodata
- thresh_symmetric
- thresh_triangle
- writecolorim
- writeim_aspect
DIPimage/common/dipimage/demos
DIPimage/common/dipimage/private
- TRC_curve
- TRC_curve_reverse
- cell2str
- convertpath
- createramp
- curvature_cirular
- curvature_parabolic
- di_convertphysDims
- di_derivedmeasurements
- di_mapaliases
- dipfig_getbordersize
- dipio_filestatus
- dippreferencess
- filt2dim
- find_files
- firsterr
- formatvalue
- getderivativeflavour
- getfigh
- gst_subsampled
- handle2str
- handlelist
- is_valid_varname
- isfigh
- label_colormap
- lin_interpol
- lin_interpol_3
- lin_interpol_3t4
- lin_interpol_4t3
- lin_interpol_reverse
- matlabver_ge
- mdhistogrammap
- niceLUT
- paramtype_array
- paramtype_array
- paramtype_boolean
- paramtype_cellarray
- paramtype_dataset
- paramtype_handle
- paramtype_image
- paramtype_indir
- paramtype_infile
- paramtype_measureid
- paramtype_measurement
- paramtype_option
- paramtype_optionarray
- paramtype_outfile
- paramtype_string
- read_TRC
- read_XYZ
- read_chad
- read_desc
- read_lut16
- read_lut8
- read_lutA2B
- read_lutA2B
- read_txt
- saturation_colormap
- test_option
- zerobased_colormap
DIPimage/common/mlv7_6/dipimage_mex
- acquireim
- affine_trans
- edir
- fast_str2double.m
- find_affine_trans
- fixlsmfile.m
- gamut_destretch
- gamut_mapping
- gamut_stretch
- localshift
- nufft_type1
- nufft_type2
- plot_gamut
- radoncircle
- rotation3d
- splitandmerge
- transform
- write_add
DIPimage/common/mlv7_6/diplib
- Contents.m
- dip_adaptivebanana.m
- dip_adaptivegauss.m
- dip_adaptivepercentile.m
- dip_adaptivepercentilebanana.m
- dip_and.m
- dip_arcfilter.m
- dip_areaopening.m
- dip_arith.m
- dip_armdhistogram.m
- dip_attenuationcorrection.m
- dip_biasedsigma.m
- dip_bilateral.m
- dip_bilateralfilter.m
- dip_binaryanchorskeleton2d.m
- dip_binaryclosing.m
- dip_binarydilation.m
- dip_binaryerosion.m
- dip_binarynoise.m
- dip_binaryopening.m
- dip_binarypropagation.m
- dip_binaryrandomvariable.m
- dip_binaryskeleton3d.m
- dip_canny.m
- dip_chordlength.m
- dip_cityblockdistancetopoint.m
- dip_clip.m
- dip_closing.m
- dip_compare.m
- dip_contraststretch.m
- dip_convolve1d.m
- dip_convolveft.m
- dip_crop.m
- dip_croptobetterfouriersize.m
- dip_crosscorrelationft.m
- dip_cumulativesum.m
- dip_danielsonlinedetector.m
- dip_derivative.m
- dip_dgg.m
- dip_dilation.m
- dip_directedpathopening.m
- dip_dmllibfile
- dip_drawline.m
- dip_drawlines.m
- dip_edgeobjectsremove.m
- dip_edt.m
- dip_ellipticdistancetopoint.m
- dip_erfclip.m
- dip_erosion.m
- dip_euclideandistancetopoint.m
- dip_euclideanskeleton.m
- dip_exit
- dip_exponentialfitcorrection.m
- dip_extendregion.m
- dip_findshift.m
- dip_finitedifference.m
- dip_finitedifferenceex.m
- dip_fouriertransform.m
- dip_ftbox.m
- dip_ftcross.m
- dip_ftcube.m
- dip_ftellipsoid.m
- dip_ftgaussian.m
- dip_ftsphere.m
- dip_gaboriir.m
- dip_gauss.m
- dip_gaussft.m
- dip_gaussiannoise.m
- dip_gaussianrandomvariable.m
- dip_gaussiansigma.m
- dip_gaussiir.m
- dip_gdt.m
- dip_generalconvolution.m
- dip_generalisedkuwahara.m
- dip_generalisedkuwaharaimproved.m
- dip_generateramp.m
- dip_getboundary.m
- dip_getlibraryinformation.m
- dip_getmaximumandminimum.m
- dip_getmeasurefeatures.m
- dip_getnumberofthreads.m
- dip_getobjectlabels.m
- dip_gettruncation.m
- dip_gradientdirection2d.m
- dip_gradientmagnitude.m
- dip_growregions.m
- dip_growregionsweighted.m
- dip_hartleytransform.m
- dip_hysteresisthreshold.m
- dip_idivergence.m
- dip_imagechaincode.m
- dip_imagelut.m
- dip_imarlut.m
- dip_incoherentotf.m
- dip_incoherentpsf.m
- dip_initialise_libs
- dip_isodatathreshold.m
- dip_kuwahara.m
- dip_kuwaharaimproved.m
- dip_label.m
- dip_laplace.m
- dip_laplacemindgg.m
- dip_laplaceplusdgg.m
- dip_lee.m
- dip_linefit.m
- dip_localminima.m
- dip_map.m
- dip_maxima.m
- dip_maximum.m
- dip_maximumpixel.m
- dip_mdhistogram.m
- dip_mean.m
- dip_measure.m
- dip_medianfilter.m
- dip_minima.m
- dip_minimum.m
- dip_minimumpixel.m
- dip_mirror.m
- dip_modulofloatperiodic.m
- dip_morphologicalgradmag.m
- dip_morphologicalrange.m
- dip_morphologicalreconstruction.m
- dip_morphologicalsmoothing.m
- dip_morphologicalthreshold.m
- dip_multiscalemorphgrad.m
- dip_nonmaximumsuppression.m
- dip_objecttomeasurement.m
- dip_opening.m
- dip_or.m
- dip_orientationspace.m
- dip_orientedgauss.m
- dip_paircorrelation.m
- dip_pathopening.m
- dip_percentile.m
- dip_percentilefilter.m
- dip_pgst3dline.m
- dip_pgst3dsurface.m
- dip_poissonnoise.m
- dip_poissonrandomvariable.m
- dip_positionmaximum.m
- dip_positionminimum.m
- dip_positionpercentile.m
- dip_probabilisticcorrelation.m
- dip_prod.m
- dip_pseudoinverse.m
- dip_quantizedbilateralfilter.m
- dip_radialdistribution.m
- dip_radialmaximum.m
- dip_radialmean.m
- dip_radialminimum.m
- dip_radialsum.m
- dip_randomseed.m
- dip_randomvariable.m
- dip_rangethreshold.m
- dip_rankcontrastfilter.m
- dip_resampleat.m
- dip_resampling.m
- dip_resamplingft.m
- dip_rotation.m
- dip_rotation3d.m
- dip_rotation3d_axis.m
- dip_rotation3daxis
- dip_rotation_with_bgval.m
- dip_seededwatershed.m
- dip_separableconvolution.m
- dip_setboundary.m
- dip_setnumberofthreads.m
- dip_settruncation.m
- dip_sharpen.m
- dip_shift.m
- dip_sigma.m
- dip_simplegaussfitimage.m
- dip_simulatedattenuation.m
- dip_skewing.m
- dip_smallobjectsremove.m
- dip_sobelgradient.m
- dip_sortindices.m
- dip_standarddeviation.m
- dip_structureadaptivegauss.m
- dip_structureanalysis.m
- dip_structuretensor2d.m
- dip_structuretensor3d.m
- dip_subpixellocation.m
- dip_subpixelmaxima.m
- dip_subpixelminima.m
- dip_subsampling.m
- dip_sum.m
- dip_svd.m
- dip_symmetriceigensystem2.m
- dip_symmetriceigensystem3.m
- dip_systemdoctor
- dip_tensorimageinverse.m
- dip_testobjectaddnoise.m
- dip_testobjectblur.m
- dip_testobjectcreate.m
- dip_testobjectmodulate.m
- dip_threshold.m
- dip_tikhonovmiller.m
- dip_tikhonovregparam.m
- dip_tophat.m
- dip_uniform.m
- dip_uniformnoise.m
- dip_uniformrandomvariable.m
- dip_upperenvelope.m
- dip_upperskeleton2d.m
- dip_variancefilter.m
- dip_vdt.m
- dip_watershed.m
- dip_wiener.m
- dip_wrap.m
- dip_xor.m
- dipio_appendrawdata.m
- dipio_colour2gray.m
- dipio_getimagereadformats.m
- dipio_getimagewriteformats.m
- dipio_getlibraryinformation.m
- dipio_imagefilegetinfo.m
- dipio_imageread.m
- dipio_imagereadcolour.m
- dipio_imagereadcolourseries.m
- dipio_imagereadroi.m
- dipio_imagereadtiff.m
- dipio_imagewrite.m
- dipio_imagewritecolour.m
- dipio_imagewriteics.m
- parameters.m
Le versioni che utilizzano il ramo predefinito di GitHub non possono essere scaricate
| Versione | Pubblicato | Note della release | |
|---|---|---|---|
| 1.2.0.0 | updated description |
|
|
| 1.1.0.0 | Add a figure to illustrate the function of this work |
|
|
| 1.0.0.0 |
Seleziona un sito web
Seleziona un sito web per visualizzare contenuto tradotto dove disponibile e vedere eventi e offerte locali. In base alla tua area geografica, ti consigliamo di selezionare: .
Puoi anche selezionare un sito web dal seguente elenco:
Come ottenere le migliori prestazioni del sito
Per ottenere le migliori prestazioni del sito, seleziona il sito cinese (in cinese o in inglese). I siti MathWorks per gli altri paesi non sono ottimizzati per essere visitati dalla tua area geografica.
Americhe
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom(English)
Asia-Pacifico
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)
