مشکل با ورودی تابع - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

مشکل با ورودی تابع

0 امتیاز

سلام ورودی این تابع رو میشه توضیح بدین و چه طوری باید تصویر رو بهش داد؟

 

void example(cv::Mat   & image) {
 
.
.
.
.
.
}

 

 

و در این تابع void* چی هست؟

 

void example( int k , void*){
.
.
.
.
.
}

 

سوال شده آبان 9, 1393  بوسیله ی محدثه (امتیاز 121)   9 28 42

1 پاسخ

+2 امتیاز

تابع 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);
   
    }
}

 

پاسخ داده شده آبان 9, 1393 بوسیله ی مصطفی ساتکی (امتیاز 21,998)   24 34 75
...