数字图像处理上机实验之Hybrid Image(OpenCv+Python)

        这是实现Hybrid Image的上机实验,即混合图像,这种图像不是简单利用两个图片按一定的权重叠加形成的,如果你将效果图放大看,你会看到图像中的高频信号,比如上图中的爱因斯坦;如果你将效果图缩小看,你会看到图像中的低频信号,比如上图中的玛丽莲。

项目分析:

  1. 要实现混合图像的效果,需要获取一个图像的低频部分和另一个图像的高频部分,并将处理之后的两个图像进行叠加;
  2. 考虑利用高斯低通滤波器的方式获取图像的低频分量,同时利用原始图像减去高斯滤波之后的图像从而获取图像的高频分量,最后通过线性叠加输出效果图像
  3. 两幅图像处理唯一的不同点在于获取高频分量的图像执行了一次减法操作,因此考虑定义函数的方式完成项目。

项目执行:

        1. 定义高斯滤波核

        a. 通过传入sigma参数,根据经验公式size = 8*sigma +1获取卷积核的大小同时保证卷积核尺寸为奇数;

        b. 定义卷积核存储的容器,通过循环遍历高斯公式为容器的每个位置赋值,最后返回高斯滤波核。

        2. 定义卷积操作;

        a. 卷积核预处理:

        b. 传入卷积核并做180°旋转;

        c. 获取卷积起始位置,定义卷积结果存储容器,通过循环遍历存储卷积结果并返回。

        3. 定义彩色图像卷积函数;

                           ——实际上是对上面两个函数的调用,因为Calculate卷积函数只能处理单个通道


        a. 卷积预处理:对原始图像的边界进行0值填充,避免边界带来的影响;

        b. 对彩色图像进行通道拆分并分别调用Calculate卷积函数实现卷积操作;

        c. 将卷积后的三个通道通过np.dstack()函数进行合并返回输出结果;

        4. 混合图像的生成;


        a. 选取小猫的图像作为混合图像的低频部分,使用cv2.imread()读取并归一化处理,设置sigma5

        b. 选取小狗的图像作为混合图像的高频部分,使用cv2.imread()读取并归一化处理,设置sigma3

        c. 分别定义卷积核并传入Conv卷积函数中,对于小狗的图像需要进行减法操作获取高频分量;

        d. 定义权重值线性叠加并输出混合图像;

注:sigma根据实际情况调整!

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

施霁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值