图像加噪(BCB)

    技术2022-05-20  59

    //产生随机噪声图像

    void __fastcall TForm1::N5Click(TObject *Sender){     int noisepoint;     Graphics::TBitmap *pBitmap;     pBitmap= new Graphics::TBitmap();     pBitmap->Assign(Image1->Picture->Graphic);     unsigned short height,width;     height=pBitmap->Height;     width=pBitmap->Width*3;     Byte *ptr;     int level;     for(int i=0; i<height;i++)     {       ptr= (Byte*)(pBitmap->ScanLine[i]);       for(int j=0;j<width;j++)       {           noisepoint=rand()/1024;           *(ptr+j)=(*(ptr+j))*224/256+(int)noisepoint;       }     }     Image1->Picture->Bitmap->Assign(pBitmap);     delete pBitmap;        }

     

    //产生椒盐噪声图像

    void __fastcall TForm1::N6Click(TObject *Sender){     Graphics::TBitmap *pBitmap;     pBitmap= new Graphics::TBitmap();     pBitmap->Assign(Image1->Picture->Graphic);     unsigned short height,width;     height=pBitmap->Height;     width=pBitmap->Width;     Byte *ptr;     int level;     for(int i=0; i<height;i++)     {       ptr= (Byte*)(pBitmap->ScanLine[i]);       for(int j=0;j<width*3;j+=3)       {           if(rand()> 31500)              {*(ptr+j) =0;               *(ptr+j+1) =0;               *(ptr+j+2) =0;              }       }     }     Image1->Picture->Bitmap->Assign(pBitmap);     delete pBitmap;}


    最新回复(0)