高斯金字塔,缩小时,输出图的像素等于输入源像素(x2,y2)位置高斯加权获得。
放大时,把单个像素放大四倍
拉普拉斯金字塔是把“ 输入源 - 放大(缩小输出源)”的差值获得。
做了一个类似合并两个图片的效果
int loopMax = 7;
vector<Mat> gpA,gpB,lpA,lpB,LS;
gpA.push_back(f1);
for (int i=0; i<loopMax; i++) {
pyrDown(f1, f1);
gpA.push_back(f1);
} gpB.push_back(f2);
for (int i=0; i<loopMax; i++) {
pyrDown(f2, f2);
gpB.push_back(f2);
}
lpA.push_back(gpA[loopMax]);
for (int i=loopMax; i>0; i--) {
pyrUp(gpA[i], f4);
subtract(gpA[i-1], f4, f5);
lpA.push_back(f5);
} lpB.push_back(gpB[loopMax]);
for (int i=loopMax; i>0; i--) {
pyrUp(gpB[i], f4);
subtract(gpB[i-1], f4, f5);
lpB.push_back(f5);
}
Mat ls;
Mat la,lb;
for (int i=0; i<loopMax; i++) {
lpA[i].copyTo(la);
lpB[i].copyTo(lb);
la.copyTo(ls);
lb.colRange(lb.cols/2, lb.cols).copyTo(ls.colRange(lb.cols/2, lb.cols));
LS.push_back(ls);
}
f5 = LS[0];
for (int i=1; i<loopMax; i++) {
pyrUp(f5, f5);
add(f5, LS[i], f5);
}
image.png
看来需要纹理单独提取出来合并才不会导致模糊