義守大學電機系

授課教師:陳慶瀚

E-mail : pierre@isu.edu.tw   

7. Class Design of Image Processing(影像處理物件類別設計)

 

download lena.raw

 

1. 設計影像物件類別,包含有rows, columns, pixel[ ][ ]等成員變數,以及建構者函式

2.增加一個用於二維陣列動態記憶體配置的成員函式:

   void initialize(int width, int height);

二維陣列動態記憶體配置方法如下:

   pixel=new unsigned char*[rows];

   for(int i=0;i< rows;i++)

   {

    pixel[i]=new unsigned char[columns];

 }

3. 新增兩個成員函式

    //影像檔讀取

    void read(char* filename)

    //影像檔寫入

    void write(char* filename)

     

4. 新增改變影像亮度的成員函式:

void lighting(float degree);

degree是一個乘數,如果degree大於1(例如1.5),則影像將變亮,若degree小於1(例如0.4),則影像變暗。

int t;
int i,j;
for(i=0;i<rows;i++)for(j=0;j<columns;j++)
{
   t=pixel[i][j]*degree;
   if(t>255)t=255;
   if(t<0)t=0;
   pixel[i][j]=(unsigned char)t;
}

5. 新增計算Histogram的成員函式,先新增一個成員變數

int histogram[256];

再設計成員函式:

void ComputeHistogram( )

{

for(i=0;i<256;i++)histogram[i]=0;
int t;
for(i=0;i<rows;i++)
{

for(j=0;j<columns;j++)
{
   t=pixel[i][j];
   histogram[t]=histogram[t]+1;
}

}

}

6. 新增計算整張影像最大和最小像素值的成員函式

7.新增計算影像normalization的成員函式

8. 新增計算影像高通濾波和低通濾波的成員函式

 


計算機程式

義守大學電機系 陳慶瀚
2005.10.12更新