manuelblancovalentin-SteerablePyramid-52a7ac1
所属分类:matlab编程
开发工具:matlab
文件大小:3051KB
下载次数:7
上传日期:2017-11-14 09:37:11
上 传 者:
咪咪默默
说明: 可控金字塔可以很好的控制方向,比非下采样contourlet的方向分解更好一些。
(used for edge detection)
文件列表:
manuelblancovalentin-SteerablePyramid-52a7ac1 (0, 2017-04-30)
manuelblancovalentin-SteerablePyramid-52a7ac1\DEMO.m (7161, 2017-04-30)
manuelblancovalentin-SteerablePyramid-52a7ac1\Portilla Original Code (0, 2017-04-30)
manuelblancovalentin-SteerablePyramid-52a7ac1\Portilla Original Code\simplified-version (0, 2017-04-30)
manuelblancovalentin-SteerablePyramid-52a7ac1\Portilla Original Code\simplified-version\base.m (605, 2017-04-30)
manuelblancovalentin-SteerablePyramid-52a7ac1\Portilla Original Code\simplified-version\buildSCFpyr.m (1390, 2017-04-30)
manuelblancovalentin-SteerablePyramid-52a7ac1\Portilla Original Code\simplified-version\buildSCFpyrLevs.m (1929, 2017-04-30)
manuelblancovalentin-SteerablePyramid-52a7ac1\Portilla Original Code\simplified-version\buildSFpyr.m (807, 2017-04-30)
manuelblancovalentin-SteerablePyramid-52a7ac1\Portilla Original Code\simplified-version\buildSFpyrLevs.m (2216, 2017-04-30)
manuelblancovalentin-SteerablePyramid-52a7ac1\Portilla Original Code\simplified-version\buildSpyr.m (673, 2017-04-30)
manuelblancovalentin-SteerablePyramid-52a7ac1\Portilla Original Code\simplified-version\buildSpyrLevs.m (776, 2017-04-30)
manuelblancovalentin-SteerablePyramid-52a7ac1\Portilla Original Code\simplified-version\corrDn.m (480, 2017-04-30)
manuelblancovalentin-SteerablePyramid-52a7ac1\Portilla Original Code\simplified-version\demo.m (714, 2017-04-30)
manuelblancovalentin-SteerablePyramid-52a7ac1\Portilla Original Code\simplified-version\lena512.bmp (263222, 2017-04-30)
manuelblancovalentin-SteerablePyramid-52a7ac1\Portilla Original Code\simplified-version\pointOp.m (278, 2017-04-30)
manuelblancovalentin-SteerablePyramid-52a7ac1\Portilla Original Code\simplified-version\rcosFn.m (448, 2017-04-30)
manuelblancovalentin-SteerablePyramid-52a7ac1\Portilla Original Code\simplified-version\reconSCFpyr.m (1533, 2017-04-30)
manuelblancovalentin-SteerablePyramid-52a7ac1\Portilla Original Code\simplified-version\reconSFpyr.m (837, 2017-04-30)
manuelblancovalentin-SteerablePyramid-52a7ac1\Portilla Original Code\simplified-version\reconSFpyrLevs.m (2175, 2017-04-30)
manuelblancovalentin-SteerablePyramid-52a7ac1\Portilla Original Code\simplified-version\reconSpyr.m (478, 2017-04-30)
manuelblancovalentin-SteerablePyramid-52a7ac1\Portilla Original Code\simplified-version\reconSpyrLevs.m (823, 2017-04-30)
manuelblancovalentin-SteerablePyramid-52a7ac1\Portilla Original Code\simplified-version\showsteerable.m (219, 2017-04-30)
manuelblancovalentin-SteerablePyramid-52a7ac1\Portilla Original Code\simplified-version\sp1.mat (1728, 2017-04-30)
manuelblancovalentin-SteerablePyramid-52a7ac1\Portilla Original Code\simplified-version\sp3.mat (2293, 2017-04-30)
manuelblancovalentin-SteerablePyramid-52a7ac1\Portilla Original Code\simplified-version\sp5.mat (1438, 2017-04-30)
manuelblancovalentin-SteerablePyramid-52a7ac1\Portilla Original Code\simplified-version\upConv.m (405, 2017-04-30)
ChangeLog (15627, 2017-04-30)
Contents.m (5715, 2017-04-30)
G3.m (905, 2017-04-30)
G3.mat (2412, 2017-04-30)
LICENSE (1092, 2017-04-30)
Source - Paper.url (120, 2017-04-30)
adjustCorr1s.m (1366, 2017-04-30)
adjustCorr2s.m (2437, 2017-04-30)
binomialFilter.m (309, 2017-04-30)
blur.m (811, 2017-04-30)
... ...
# SteerablePyramid
Steerable Pyramid Builder, Visualizer & Texture Synthesizer for MATLAB
I created this code for my MSc. Thesis in Oil Reservoir Image Data
processing as I needed to understand how the workflow proposed by
Portilla et al worked. Even though Portilla's original code (see here:
http://www.cns.nyu.edu/~eero/steerpyr/) works great, it was very
difficult to fully comprehend each step in the different processes of
building the steerable pyramid, characterizing the textures and
synthesizing them, as almost no comments nor intelligible variable names
were used on the code.
I studied the code for several weeks and implemented all processes on my
own. I commented all steps and tried to include as many references to
the original paper as possible; so If anyone wants/needs to
understand how this code works, it'll be a lil' bit easier.
I have implemented ALL functions from scratch and I only use 1 of
Portilla's original code (expand function). I have also included another
function ('dispPyramid') which displays the steerable pyramid in a more
friendly way (giving the impression of a real pyramid), so that if you
need to display the pyramid in any paper or work, you can simply use
this function almost out the box.
I have tested my code and Portilla's original code using the same input
images and same initial conditions (starting white noise) and they
provide the EXACT same results (I checked this value per value).
This code can be used mainly for three purposes:
1) Build a steerable pyramid, given an input image, and a number of
desired scales and orientations. A steerable pyramid is a technique
that uses a recursive filtering workflow to obtain the different
attributes (texturally speaking) that an image may have at different
scales and orientations. This workflow basically consists on taking the
input image, filtering it with a highpass filter, a series of
different-oriented 2D band-pass filters and a low-pass filter. The
low-pass component (what's left-over) is then downscaled using a factor
of 2 and all the process is repeated again (High-pass + band-pass +
LP). By doing so we are extracting textural information about
orientation of the features in our image at different scales.
2) Extract Features that characterize the texture on the input image at
different scales and orientations (based on the steerable pyramid built
previously). These feature are those described on Portilla's paper too.
As shown on that paper they seem to be sufficient to characterize
several types of textures well (indeed they seem to do its job so well
that we can actually synthesize almost identical textures by using
them, as I will explain on the following entry). On the other side,
Portilla and Simoncelli asure they are universal parameters (which
roughly means that you can use it in a bunch of different applications
without having to implement much changes).
3) Texture Synthesis. As described in Portilla's paper, we can use the
textural features extracted from the steerable pyramid (used to
characterize it) to create a totally artificial and synthetic image
that will have the same textural characteristics as the original one.
On the other side, it is also possible to extrapolate texture, creating a
Mask that will preserve some part of the original texture, and synthesize the rest of it.
近期下载者:
相关文件:
收藏者: