第1關:理想_高通濾波
#include "BMP.h"
IplImage* Ideal_HighPassFilter(IplImage* im)
{
int i,j;
IplImage *Ideal_HighPass = cvCreateImage(cvGetSize(im),IPL_DEPTH_8U,1);//??í¨μà
cvZero(Ideal_HighPass); //?????a??í???μ??úèY
//******************àí????í¨??2¨?÷******************//
//?£°?ààDíê?8???T·?o?êy£?òò′?PPT?D1?ú′???ó|μ?ê?255£?Dè??0-1à??1μ?0-255????
for(i=0;i<im->height;i++)
{
for(j=0;j<im->width;j++)
{
int x,y;
double D,D0;
x=i-im->height/2;
y=j-im->width/2;
D=sqrt(pow(x,2)+pow(y,2));
D0=40;
if(D>=D0)
{
/********* Begin *********/
Ideal_HighPass->imageData[i*im->width+j] = 255;
/********* End *********/
}
}
}
return Ideal_HighPass;
}
第2關:巴特沃斯高通濾波
#include "BMP.h"
IplImage* ButterWorth_HighPassFilter(IplImage* im)
{
int i,j;
IplImage *ButterWorth_HighPass = cvCreateImage(cvGetSize(im),IPL_DEPTH_8U,1);
cvZero(ButterWorth_HighPass); //?????a??í???μ??úèY
//******************°íì????1??í¨??2¨?÷******************//
//?£°?ààDíê?8???T·?o?êy£?òò′?PPT?D1?ú′???ó|μ?ê?255£?Dè??0-1à??1μ?0-255????
for(i=0;i<im->height;i++)
{
for(j=0;j<im->width;j++)
{
int x,y,n;
double D,D0;
x=i-im->height/2;
y=j-im->width/2;
D=sqrt(pow(x,2)+pow(y,2));
D0=40;
n=2;
/********* Begin *********/
ButterWorth_HighPass->imageData[i*im->width+j] = 255/(1+pow(D0/D,2*n));
/********* End *********/
}
}
return ButterWorth_HighPass;
}
**
第3關:高斯高通濾波**
#include "BMP.h"
IplImage* Gauss_HighPassFilter(IplImage* im)
{
int i,j;
IplImage *Gauss_HighPass = cvCreateImage(cvGetSize(im),IPL_DEPTH_8U,1);
cvZero(Gauss_HighPass); //?????a??í???μ??úèY
//******************???1??í¨??2¨?÷******************//
//?£°?ààDíê?8???T·?o?êy£?òò′?PPT?D1?ú′???ó|μ?ê?255£?Dè??0-1à??1μ?0-255????
for(i=0;i<im->height;i++)
{
for(j=0;j<im->width;j++)
{
int x,y,n;
double D,D0;
x=i-im->height/2;
y=j-im->width/2;
D=sqrt(pow(x,2)+pow(y,2));
D0=40;
n=2;
/********* Begin *********/
Gauss_HighPass->imageData[i*im->width+j] = 255*(1-exp(-0.5*pow(D,2)/pow(D0,2)));
/********* End *********/
}
}
return Gauss_HighPass;
} ```
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/272792.html
標籤:其他
