• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

OpenCV 图像金字塔的实现示例

c语言 搞代码 4年前 (2022-01-06) 48次浏览 已收录 0个评论
文章目录[隐藏]

本文将结合实例代码,介绍OpenCV 图像金字塔,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

本文主要介绍了OpenCV 图像金字塔,具有一定的参考价值,感兴趣的可以了解一下

高斯金字塔reduce void cv::pyrDown()
expand void cv::pyrUp()

1.高斯金字塔

图像金字塔是对一张输入图像先模糊再下采样为原来的高、宽的1/2,不断重复模糊与下采样的过程就得到了不同分辨率的输出图像,叠加在一起就形成了图像金字塔

高斯金字塔便是先进行高斯模糊,再进行reduce和expand操作。高斯金字塔中的较高级别(低分辨率)是通过删除较低级别(较高分辨率)图像中的连续行和列而形成的。然后,较高级别的每个像素由基础级别的5个像素的贡献与高斯权重形成。通过这样做,M×N图像变成M/2×N/2图像。因此面积减少到原始面积的四分之一。它称为Octave。

cv::pryDown()

 C++ void cv::pyrDown(cv::InputArray src, cv::OutputArray dst, const cv::Size &dstsize = cv::Size(), int borderType = 4)

cv::pryUp()

 C++ void cv::pyrUp(cv::InputArray src, cv::OutputArray dst, const cv::Size &dstsize = cv::Size(), int borderType = 4)

2.拉普拉斯金字塔

在高斯金字塔的运算过程中,图像经过卷积和下采样操作会丢失部分高频细节信息。为描述这些高频信息,人们定义了拉普拉斯金字塔(Laplacian Pyramid, LP)。用高斯金字塔的每一层图像减去其上一层图像上采样并高斯卷积之后的预测图像,得到一系列的差值图像即为 LP 分解图像。首先要进行金字塔的reduce操作,再expand操作,最后相减得到拉普拉斯金字塔。 L=G-expand(reduce(G))

代码1:

 #include #include #include using namespace cv; using namespace std; int main(int argc, char** argv) { Mat image = imread("C:/Users/YY/Pictures/Saved Pictures/1.jpg-600"); Mat out; imshow("原图", image); pyrDown(image, out); imshow("降采样", out); pyrUp(out, out); imshow("上采样", out); subtract(image, out, out); imshow("拉普拉斯金字塔", out); waitKey(0); <em style="color:transparent">来源[email protected]搞@^&代*@码)网</em>destroyAllWindows(); return 0; }

以上就是OpenCV 图像金字塔的实现示例的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:OpenCV 图像金字塔的实现示例

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址