//产生随机噪声图像
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;}