【数字图像处理】骨骼锐化

源码链接:skeleton.cpp

一、实验要求

附件是人体骨骼核扫描图像,我们的目的是通过图像锐化突出骨骼的更多细节来增强图像。图像灰度的动态范围很窄并且有很高的噪声内容。

二、实验内容

按照课本冈萨雷斯的《数字图像处理》上面的思路,整个处理过程应该是先使用拉普拉斯变换进行图像处理,可以突出图像中的细节部分;接着使用sobel梯度法,突出骨骼的边界;再用盒滤波器进行平滑处理,平滑后的图像可以用来掩盖拉普拉斯图像。这样就实现了锐化处理。最后使用灰度变换来增强图像灰度动态范围。输出图像即可。

拉普拉斯变换:
在这里插入图片描述

这里通过定义一个滤波器核,使用模板为[1,1,1;1,-8,1;1,1,1]的滤波器对原图像进行拉普拉斯操作,然后对输入图像进行操作并将结果存储在laplas中。这里定义了一个tubeone函数,主要功能是通过取出图像的上下限来锐化图像。这样子就可以显示出骨骼图的拉普拉斯变换。

下面进行sobel梯度处理:
在这里插入图片描述
使用blur函数进行平滑处理:这里使用5*5均值滤波:
在这里插入图片描述

前面相加的图与滤波图相乘:
在这里插入图片描述

接着将上面相乘后的图与原图相加,并锐化:
在这里插入图片描述

最后一步,对图像进行幂律伽马变换,得到最终的结果图。
在这里插入图片描述

这里的伽马变换定义了一个函数gammaTran:
在这里插入图片描述

最终结果:

原图:
在这里插入图片描述

拉普拉斯变换:
在这里插入图片描述

前两张图相加:
在这里插入图片描述

Sobel梯度处理:
在这里插入图片描述

Smooth平滑处理:5*5均值滤波
在这里插入图片描述

前面相加的图与滤波图相乘:
在这里插入图片描述

原图与上图求和的锐化:
在这里插入图片描述

幂律变换:
在这里插入图片描述

三、实验收获

1、实验遇到的问题及难点

这次实验难点集中在处理问题的方式上。需要认真听课并理解每一步操作是都有什么样的作用,可以带来什么样的效果,这样才能找到解决问题的正确的步骤,最终得到一个较好的结果。而且实验中还需要进行多次的试错,在每一次的参数调整中找到最合适的变量(这一步也需要对原理有较为熟悉的掌握,了解其数学意义后才能有试错的方向)。最终还要对opencv有一定的了解,在对每个函数的功能及使用方法了解后才能正确的使用。

2、实验总结

又一次通过的opencv解决了图片处理的问题。之前只知道有类似于锐化这种处理方法,但经过这次实验才是真真正正明白了锐化处理的整个内部过程及原理,不仅仅是电脑端处理图片更加精确了,好像在手机上处理图片时对于每个参数的调整范围都更加明白了。这才是学习与生活并行。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值