我正在尝试使用金字塔运行均值漂移分割,就像在《学习OpenCV》书中解释的那样,在一些图像上。源图像和目标图像都是8位、三通道彩色图像,宽度和高度相同。然而,只有1600x1200或1024x768大小的图像才能得到正确的输出。其他大小为625x391和644x438的图像会导致运行时错误“输入参数的大小不匹配于函数cvPyrUp()”。我的代码如下:
IplImage *filtered = cvCreateImage(cvGetSize(img),img->depth,img->nChannels);
cvPyrMeanShiftFiltering( img, filtered, 20, 40, 1);
该程序使用示例中给出的参数。我尝试减小值,以为是图像尺寸问题,但没有成功。通过将图像尺寸调整为644x392和640x320,均值漂移可以正常运行。我读到“金字塔分割需要图像的大小是2的N次方倍,其中N是要计算的金字塔层数”,但这对此有什么作用吗?
请提供建议。
filtered->width
这个问题:由于过滤后的图像大小正在改变,金字塔需要相同大小的图像,因此会出现错误消息。 - AruniRC