destripe

From DavinciWiki
Jump to: navigation, search

Description

Remove vertical or horizontal single-line stripes from an image

Arguments and Return Values

Arguments: A data array containing line or row correlated single-pixel width noise

Return Value: The cleaned data array of same size and organization of the input

Usage

Syntax: destripe(in, dir, option, [filter], [thres], [sxnoise], [exnoise], [synoise], [eynoise], [start], [end])

dir = 'x' to remove horizontal stripes

dir = 'y' to remove vertical stripes

option 1: Do low-pass, high-pass, difference

option 2: Do low-pass, high-pass, threshold, difference

option 3: Do low-pass, high-pass, threshold, redo low-, high-pass, difference

option 4: Do low-pass, high-pass, threshold, replace spike columns (rows) with average of neighbors

option 5: Do high-pass using image ave., difference, add back low-pass

dir = 'x' transposes image x to y - does correction - then transposes back

[sxnoise, exnoise, synoise, and synoise] are optional start and end x,y value to determine noise in image defaults to full image

[start] and [end] are optional start and end values (x or y as appropriate) of region to apply noise removal

NOTE: when doing x-direction, sxnoise, exnoise, etc all corrspond to x, y values AFTER transpose has been applied

[filter] set low-pass filter value (default = 9)

[thresh] set spike threshold value (default = 2 * sigma)

Examples

dv> a
320x500x1 array of byte, bsq format [160,000 bytes]

dv> b = destripe(a,'y',5)
taking average in y direction - apply along x axis; removes column-to-column noise
computing noise over region 1 320 1 500   filter size = 9
doing option 5
struct, 7 elements
    avey: 320x1x1 array of double, bsq format [2,560 bytes]
    aveyf: 320x1x1 array of float, bsq format [1,280 bytes]
    diff: 320x1x1 array of double, bsq format [2,560 bytes]
    diff_used: 320x1x1 array of double, bsq format [2,560 bytes]
    filt_size: 9
    boxcar: 9x1x1 array of float, bsq format [36 bytes]
    out: 320x500x1 array of double, bsq format [1,280,000 bytes]

dv> c = destripe(b.out,'x',5)
taking average in x direction - apply along y axis; removes row-to-row noise
computing noise over region 1 500 1 320   filter size = 9
doing option 5
struct, 7 elements
    avey: 500x1x1 array of double, bsq format [4,000 bytes]
    aveyf: 500x1x1 array of float, bsq format [2,000 bytes]
    diff: 500x1x1 array of double, bsq format [4,000 bytes]
    diff_used: 500x1x1 array of double, bsq format [4,000 bytes]
    filt_size: 9
    boxcar: 9x1x1 array of float, bsq format [36 bytes]
    out: 320x500x1 array of double, bsq format [1,280,000 bytes]

Images

destripe1.png destripe2.png destripe3.png

DavinciWiki Mini-Nav Bar

Contents


Contact Developers

  • davinci-dev [AT] mars.asu.edu

All other topics

  • See navigation on the left

Major Sub-Functions

Related Functions

Recent Library Changes

Created On: 02-15-2006
Modified On: 01-17-2008

Personal tools