2011-06-29 3 views
1

Je travaille avec des filtres à OpenCV et ne sais pas comment multiplier un nombre (1/5) dans cet exempleMultiplier un CvMat * et un certain nombre

CvMat* kernel=0; 

    IplImage* dst = cvCreateImage(cvGetSize(entrada), IPL_DEPTH_8U, 3); 

    kernel = cvCreateMat(3, 3,CV_32FC1); 
    cvSet2D(kernel, 0, 0, cvRealScalar(1)); 
    cvSet2D(kernel, 0, 1, cvRealScalar(1)); 
    cvSet2D(kernel, 0, 2, cvRealScalar(1)); 
    cvSet2D(kernel, 1, 0, cvRealScalar(1)); 
    cvSet2D(kernel, 1, 1, cvRealScalar(2)); 
    cvSet2D(kernel, 1, 2, cvRealScalar(1)); 
    cvSet2D(kernel, 2, 0, cvRealScalar(1)); 
    cvSet2D(kernel, 2, 1, cvRealScalar(1)); 
    cvSet2D(kernel, 2, 2, cvRealScalar(1)); 

    // Matriz utilizada para el filtrado paso alto 
    // 1 1 1 
    // 1 2 1 
    // 1 1 1 

    cvFilter2D(entrada, dst, kernel, cvPoint(-1,-1)); 

Répondre

1

Qu'en est-cvScale(src, dst, scale) avec scale être le nombre, quelle que soit la matrice avec laquelle vous voulez le multiplier. Si vous voulez le multiplier avec le noyau, qu'en est-il juste d'initialiser le noyau avec les valeurs multipliées?

Questions connexes