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.

近期下载者

相关文件


收藏者