Como dar zoom em uma imagem com opencv?³

Pessoal, eu estou com este exercício a um tempo e ainda não consgui terminar. Eu tenho que dar zoom em uma imagem e já está quas pronto, eu só não consigo fazer o zoom ser superior a 2. O que fazer para que o fator de apliação seja genérico e sem problemas?

#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>

using namespace std;
using namespace cv;

int main(int argc, char *argv[]){
    int zoom = 4;
    Mat img = imread("copo.jpg", CV_LOAD_IMAGE_COLOR);
    Mat img2 = Mat::zeros(img.size()*zoom, CV_8UC3);
    int wid = img.size().width;
    int hei = img.size().height;
    int wid2 = img2.size().width;
    int hei2 = img2.size().height;
    for(int i = 0;i < wid;i++){
        for(int j = 0;j < hei;j++){
            double k,l;
            k = i*zoom;
            l = j*zoom;
            int amp = 2; //Fator de ampliação
            img2.at<Vec3b>(k, l) = img.at<Vec3b>(i, j);
            img2.at<Vec3b>(k+amp, l) = img.at<Vec3b>(i, j);
            img2.at<Vec3b>(k, l+amp) = img.at<Vec3b>(i, j);
            img2.at<Vec3b>(k+amp, l+amp) = img.at<Vec3b>(i, j);
        }
    }
    if(img2.empty())
       return -1;
    namedWindow("Zoom", CV_WINDOW_AUTOSIZE);
    imshow("Zoom", img2);
    waitKey(0);
    return 0;
}

Não tenho como ajudar com seu código diretamente, mas dê uma olhada:

Link do código: https://github.com/brutalchrist/ejemplosOpencv

Abraço.