تابع example اول متغیری از نوع کلاس Mat را با رفرنس دریافت می کنه.
void example(cv::Mat& img){
imshow("view",img);
waitkey(0);
}
int main(){
cv::Mat img = imread("d:/img.bmp");
example(img);
return 0;
}
تابع دوم پارامتر دوم آن void* هستش البته اسم متغیر را ذکر نکردید که باید مشخص باشه . یعنی اینکه شما هر نوع اشاره گری را می تونید به تابع ارسال کنید.در مثال زیر تابعی برای نمایش تصویر هستش که اگر پارامتر k در آن مشخص کننده نوع تصویر و پارامتر بعدی قایلبت دریافت دو نوع تصویر را دارد که این تابع هر 2 نوع تصویر را نمایش می دهد.
void show(int k,void* img){
if (k == 1){
Mat* image = (Mat*) img;
imshow("view",image);
waitkey(0);
}
else if (k == 2){
IplImage* image = (IplImage*)img;
cvShowImage("view",image);
cvWaitKey(0);
}
}