Advertisement
Guest User

Untitled

a guest
Dec 7th, 2016
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.85 KB | None | 0 0
  1. void __fastcall TForm1::LinearFiltr(TObject *Sender)
  2. {
  3. int rsume, gsume, bsume, graysume;
  4. int margin = ((Size-1)/2);
  5.  
  6. //filtr dla obrazu kolorowego
  7. for (int i=margin; i<ObrazKolorowy->Width-margin; i++)
  8. for (int j=margin; j<ObrazKolorowy->Height-margin; j++)
  9. {
  10. rsume = 0;
  11. gsume = 0;
  12. bsume = 0;
  13. for (int k=0; k<Size; k++)
  14. for (int l=0; l<Size; l++)
  15. {
  16. rsume += Filter[k*Size+l]*red[i+k-margin][j+l-margin];
  17. gsume += Filter[k*Size+l]*green[i+k-margin][j+l-margin];
  18. bsume += Filter[k*Size+l]*blue[i+k-margin][j+l-margin];
  19. }
  20. rsume /= Norm;
  21. gsume /= Norm;
  22. bsume /= Norm;
  23.  
  24. if (rsume > 255) rsume = 255;
  25. else if (rsume < 0) rsume = 0;
  26. if (gsume > 255) gsume = 255;
  27. else if (gsume < 0) gsume = 0;
  28. if (bsume > 255) bsume = 255;
  29. else if (bsume < 0) bsume = 0;
  30.  
  31. WynikKolorowy->Canvas->Pixels[i][j] = (TColor)rsume + (gsume << 8) + (bsume << 16);
  32. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement