Для уменьшения изображения я бы использовал:
void cvResize(const CvArr* src, CvArr* dst, int interpolation=CV_INTER_LINEAR )
Чтобы уменьшить изображение, оно обычно будет выглядеть лучше с интерполяцией CV_INTER_AREA, тогда как для увеличения изображения это будет выглядеть лучше всего с CV_INTER_CUBIC (медленно) или CV_INTER_LINEAR (быстрее, но все еще выглядит хорошо).
Но я до сих пор не использовал cvPyrDown, поэтому не знаю, как он работает ...