Bu yazımda sizlere görüntü işleme dersinde de anlatılan yüksek geçiren C kodlarını paylaşacağım.Aynı şekilde bu kodlar üzerinde oynama yaparak kodları C++ diline çevirebilirsiniz.Herkese iyi çalışmalar dilerim.
Yüksek Geçiren C Kodları;
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
void YuksekGeciren(IMAGE *image) { LONG h,w,i,j,k,l,sz; double Gx[3][3]={-1,-1,-1,0,0,0,1,1,1}; double Gy[3][3]={-1,0,1,-1,0,1,-1,0,1}; double tx,ty; BYTE *Data; h=image->bmpih.bih; w=image->bmpih.biw; sz=(w*image->bmpih.bibitcount+31)/32*4; Data=(BYTE *) malloc(h*sz); if(Data==NULL) exit(1); memcpy(Data,image->data,h*sz); for(i=1;i<h-1;i++) for(j=1;j<sz-1;j++) { tx=0;ty=0; for(k=-1;k<=1;k++) for(l=-1;l<=1;l++) { tx+=Data[(i+k)*sz+j+l]*Gx[k+1][l+1]; ty+=Data[(i+k)*sz+j+l]*Gy[k+1][l+1]; } tx=sqrt(tx*tx+ty*ty); if(tx<0) tx=0; if(tx>255) tx=255; image->data[i*sz+j]=(BYTE)tx; } free(Data); return; } |
Bu kodlar yardımcı fonksiyondur.Yani yüksek geçiren fonksiyonunun kodlarıdır.Ana fonksiyon değildir.Program direkt olarak bu kodlarla çalışmaz.Ana fonksiyonda eklemeniz gerekmektedir.
Bu Yazıya Tepkin Ne Oldu ?


