OpenCV C++ 简单小技巧 - 金字塔缩放 (12

高斯金字塔,缩小时,输出图的像素等于输入源像素(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

看来需要纹理单独提取出来合并才不会导致模糊

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 转自:http://www.cnblogs.com/silence-hust/p/4193208.html关于用拉...
    Mordekaiser阅读 8,559评论 1 2
  • 1、高斯金字塔 整个高斯金字塔,或者说是差分高斯金字塔是我们确定SIFT特征的基础,让我们首先想想高斯金字塔到底干...
    行走行囊阅读 4,687评论 0 0
  • Supervisor 官方文档 Supervisor即是一个客户端系统也是一个服务端系统,可以为使用者提供UNIX...
    甚了阅读 1,592评论 0 0
  • 院子里长了一株向日葵,我并没有种她,它是自个儿长出来的。 每天看着她,我都想替她申请吉尼斯世界纪录,因为她实在是长...
    耕玫竹堂阅读 3,677评论 0 0