我正在使用 OpenCV 中的一些过滤器,但不知道如何在这个例子中乘以一个数字 (1/5)
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));
最佳答案
cvScale(src, dst, scale)
怎么样,scale
是数字,无论你想将它与什么矩阵相乘。如果您想将它与内核相乘,只用相乘后的值初始化内核怎么样?
关于opencv - 将 CvMat* 和数字相乘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6524423/