Merhaba. OpenCv de bu yöntemi gördüm ve mekanizmasını anlamadım.
createTrackbar( "Element:\n 0: Rect \n 1: Cross \n 2: Ellipse", "Erosion Demo",
&erosion_elem, max_elem,
Erosion );
Bu trackbar Erosion adlı fonksiyona çağrı yapıyor.
void Erosion( int, void* )
{
int erosion_type;
if( erosion_elem == 0 ){ erosion_type = MORPH_RECT; }
else if( erosion_elem == 1 ){ erosion_type = MORPH_CROSS; }
else if( erosion_elem == 2) { erosion_type = MORPH_ELLIPSE; }
Mat element = getStructuringElement( erosion_type,
Size( 2*erosion_size + 1, 2*erosion_size+1 ),
Point( erosion_size, erosion_size ) );
}
Fonksiyon tanımında sadece tipler var. İçerideki erosion_elem değişkenine nasıl ulaşıldığını anlamadım.
düzeltme: Değişkene global erişiliyormuş. Parametre alanındaki tipleri neden kullandık açıklayabilir misiniz?
sebebi createTrackbar adlı fonksiyona track barın pozisyonu değiştikçe çağrılacak fonksiyonun
prototipi
void func( int, void* )
böyle olması gerektiğinden
bakınız
http://docs.opencv.org/3.1.0/d7/dfc/group__highgui.html#ga004b512c3d09aa53f20b050b1d01fab1 (http://docs.opencv.org/3.1.0/d7/dfc/group__highgui.html#ga004b512c3d09aa53f20b050b1d01fab1)