AlbumShaper  1.0a3
Functions
blur.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

void blurImage (QImage &image, float sigma)
 
void blurImage (QImage &image, float sigma, QPoint offset, QSize fullImageRes, QImage *edges, int *regions, int numRegions, bool targetEdges)
 

Function Documentation

§ blurImage() [1/2]

void blurImage ( QImage &  image,
float  sigma 
)

Definition at line 94 of file blur.cpp.

References blurImage().

Referenced by GrainEditor::adjustImage(), blurImage(), EdgeDetect::constructEdgeImage(), and sharpenImage().

95 {
96  //supply dummy data for edges, notably NULL for the edge image pointer.
97  //other values have no effect
98  blurImage( image, sigma, QPoint(0,0), image.size(), NULL, NULL, 0, false );
99 }
void blurImage(QImage &image, float sigma)
Definition: blur.cpp:94

§ blurImage() [2/2]

void blurImage ( QImage &  image,
float  sigma,
QPoint  offset,
QSize  fullImageRes,
QImage *  edges,
int *  regions,
int  numRegions,
bool  targetEdges 
)

Definition at line 101 of file blur.cpp.

References blurBuffer(), buffer, colBuffer, computeCoeffs(), displayOffset, edgeImage, fillBuffer(), fullRes, height, regionColBuffer, regionCount, regionMap, regionRowBuffer, resetImageData(), rowBuffer, and width.

105 {
106  edgeImage = edges;
107  regionMap = regions;
108  regionCount = numRegions;
109  displayOffset = offset;
110  fullRes = fullImageRes;
111 
112  //compute blurring coeffecients
113  computeCoeffs(sigma);
114 
115  //store image dimensions
116  width = image.width();
117  height = image.height();
118 
119  //Construct float buffer that is the size of the image/
120  //In order to conserve memory process image three times, once for
121  //each color channel.
122  buffer = new float[ width * height ];
123 
124  rowBuffer = new float[width];
125  colBuffer = new float[height];
126 
127  regionRowBuffer = new float[width * numRegions];
128  regionColBuffer = new float[height * numRegions];
129 
130  //iterate over each color channel
131  int channel;
132  for( channel = 0; channel <=2; channel++)
133  {
134  //copy color data into float buffer
135  fillBuffer( image, channel );
136 
137  //blur buffer data
138  blurBuffer();
139 
140  //reset image data used blurred buffer
141  resetImageData(image, channel, targetEdges);
142  }
143 
144  //delete buffer
145  delete[] buffer;
146  delete[] rowBuffer;
147  delete[] colBuffer;
148 }
float * regionColBuffer
Definition: blur.cpp:85
QPoint displayOffset
Definition: blur.cpp:90
float * rowBuffer
Definition: blur.cpp:81
QImage * edgeImage
Definition: blur.cpp:87
int regionCount
Definition: blur.cpp:89
float * colBuffer
Definition: blur.cpp:82
void computeCoeffs(float sigma)
Definition: blur.cpp:150
int width
Definition: blur.cpp:79
void fillBuffer(QImage &image, int channel)
Definition: blur.cpp:172
void resetImageData(QImage &image, int channel, bool blurEdges)
Definition: blur.cpp:527
float * buffer
Definition: blur.cpp:80
void blurBuffer()
Definition: blur.cpp:204
int * regionMap
Definition: blur.cpp:88
QSize fullRes
Definition: blur.cpp:91
float * regionRowBuffer
Definition: blur.cpp:84
int height
Definition: blur.cpp:79