一起学python |
您所在的位置:网站首页 › b站百大up主标准 › 一起学python |
![]() 透视变换必须是四个点对应四个点,还是为了保证方程组的封闭。 ![]() 参考了冈萨雷斯的数字图像处理第三版,https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_imgproc/py_pyramids/py_pyramids.html#pyramids和http://www.cnblogs.com/skyfsm/p/6876732.html。 图像金字塔有两种,一种是高斯金字塔,就是经过高斯滤波的金字塔,还有一种是拉普拉斯金字塔(通过高斯金字塔可以得到)。冈萨雷斯的书里也把高斯金字塔叫做近似金字塔,拉普拉斯金字塔叫做预测残差金字塔。 ![]() ![]() ![]() 金字塔的pyrDown函数是先进行高斯滤波,滤波模板是5*5的,然后在删除偶数行和列,这样图像的大小就会变成原来的1/4,高斯滤波的时候边界类型不能选择常数,默认的是BORDER_DEFAULT类型。 ![]() 看到REFLECT_101这种类型就是没有重复最边上的,也就是a和h。 ![]() pyrUp是偶数行列填充0,然后再用一个20*20的高斯核去卷积滤波。可想而知,这样的效果肯定很差了。那么先来试一试。 ![]() ![]() 我们用上面最小的那张来依次放大: ![]() ![]() 结果和预想的一样,丢失了很多的信息。再来看一看拉普拉斯金字塔: ![]() 拉普拉斯金字塔是拿原来的图减去pyrDown后又pyrUp回来的,中间有两次高斯滤波,边缘这些像素值突变的地方会被破坏得比较严重,所以这一减,基本上就把边缘减出来了。效果: ![]() 认真看是能看到一些比较白的像素的。为什么叫拉普拉斯金字塔呢,我感觉可能就是比较像拉普拉斯算子作用之后的边缘提取效果。 ![]() 把预测残差再和pyrUP的结果加一下: ![]() 稍微清楚一点,修正了某些细节,但是还是比较模糊。有一点忘了关注了,就是图像的大小,因为每次宽和高都要除以2,如果是奇数怎么办呢: ![]() 4次正好到45,那么继续呢? ![]() ![]() 看来遇到奇数会加一除以2。 ![]() 那么这个图像金字塔有什么用处呢? ![]() 根据数字图像处理,在图像压缩和模式识别里面有用。opencv官方还给了一个例子,是图像融合的。 ![]() ![]() 上面的xrange就是range,不知道为什么多了一个x。它是先产生降级的高斯金字塔,然后再产生拉普拉斯金字塔(它是用来修正细节的)。然后把两张图的拉普拉斯金字塔图进行拼接,这个是获得细节的。注意LS[0]并不是拉普拉斯金字塔的结果,而是高斯金字塔最小图片的拼接结果。然后从这个最小的图片开始往上层pyrUP,每上一层还要加一次细节。我也实际来实验一下。同时注意range出来到底是哪些数。 ![]() ![]() ![]() 不过报错了,为什么呢?其实这是因为降级的时候奇数会加一除以2,但是升级的时候不会还原。 ![]() 所以说图片大小最好是2^n,针对本题,图片大小要是32的倍数。不是没关系,我们在最开始resize。 ![]() ![]() ![]() 修改了以上地方,结果: ![]() 直接拼接肯定会突兀啊。 ![]() 怎么说呢,这个还有点唯美的感觉。并且细节还是保留的比较完整的,我一开始想用的是直接拼接,然后均值滤波来消除这个边界的突兀。 ![]() ![]() 但是小的模板消除不了边界的突兀性,这个就没有上面的拼接效果好,上面是比较平滑的过渡,这个很突然,并且细节也被滤波滤很模糊了。 ![]() 滤波模板更大就会更模糊了。并且边界效果还是没有上面好。看来图像金字塔在图像融合这个地方还是比较成功的。 ![]() |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |