Skip to content

Commit

Permalink
No commit message
Browse files Browse the repository at this point in the history
  • Loading branch information
olivernina committed Jul 10, 2009
1 parent 3269e9a commit fd4fcbc
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 29 deletions.
25 changes: 4 additions & 21 deletions BilateralFilter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,18 +16,15 @@ int getValue(IplImage * image,int i,int j)
return pixelValue;
}

void BilateralFilter::setEdgeDetectedImage(IplImage * edimage)
{
this->edimage= edimage;
}

BilateralFilter::BilateralFilter(IplImage *image,double sigmaD, double sigmaR){

contrastParameter = 100;
this->mouseInteraction = mouseInteraction;


this->image = cvCloneImage(image);
int sigmaMax = max(sigmaD, sigmaR);
this->kernelRadius = ceil((double)2 * sigmaMax);
this->strokeWidth = strokeWidth;


double twoSigmaRSquared = 2 * sigmaR * sigmaR;

Expand All @@ -52,13 +49,10 @@ BilateralFilter::BilateralFilter(IplImage *image,double sigmaD, double sigmaR){
gaussSimilarity[i] = exp((double)-((i) / twoSigmaRSquared));
}

//rimage = cvCreateImage(cvGetSize(this->image),IPL_DEPTH_8U,3);
//cvZero(rimage);
rimage = cvCloneImage(image);
}
IplImage * BilateralFilter::runFilter(){



for(int i=0;i<rimage->height;i++){
for (int j=0;j<rimage->width;j++){
Expand All @@ -77,17 +71,6 @@ double BilateralFilter::getSpatialWeight(int m, int n,int i,int j){
}



void BilateralFilter::applyAround(int x, int y){
//int strokeWidth = 15;
//cvSet2D(image,y,x,blueColor);
for(int i=y-strokeWidth; i<y+this->strokeWidth;i++){
for(int j=x-strokeWidth; j<x+this->strokeWidth;j++){
this->apply(i,j);
//cvSet2D(image,i,j,blueColor);
}
}
}
void BilateralFilter::apply(int i, int j) {// ~i=y j=x

if(i>0 && j>0 && i<image->height && j< image->width){
Expand Down
10 changes: 2 additions & 8 deletions BilateralFilter.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,23 +5,17 @@ class BilateralFilter{
public:
IplImage * image;
IplImage * rimage ;
IplImage * edimage;

double kernelRadius;
double ** kernelD;
double *gaussSimilarity;
int contrastParameter;
bool mouseInteraction;
int strokeWidth;

BilateralFilter(IplImage *image,double sigmaD, double sigmaR);

IplImage * runFilter();
void apply(int i,int j);
void applyAround(int x,int y);
bool isInsideBoundaries(int m,int n);
double similarity(int p,int s);
double gauss(double sigma,int x, int y);
double BilateralFilter::getSpatialWeight(int m, int n,int i,int j);
void BilateralFilter::setEdgeDetectedImage(IplImage * edimage);
bool BilateralFilter::isMouseOnEdge(int y,int x);

};

0 comments on commit fd4fcbc

Please sign in to comment.