CT图像增强
2017-11-30 17:21
232 查看
CT图像增强
简介
如下图所示,希望对这幅人体骨骼扫描图片实现增强的效果。通过这个实验, 我们可以了解到一阶微分算子以及二阶微分算子在图像细节信息以及边缘信息获取的原理;以及将其用在图像增强上的优缺点。
处理过程
首先我们选择二阶微分算子-Laplace算子来处理图像g2,然后通过原图f2(double类型)减去g2来获取增强的图像。这里说明以下做减法而不是加法的原因,图像的二阶微分不为零的区域是在灰度变化的拐点。减去这部分区域可以明显增强图像灰度变化区域和灰度不变区域的区别。
当lapace算子中心元素减小到-8时,再次做减法后会有更明显的增强效果。
最后通过伽马运算来扩大灰度动态范围,使得肌肉组织更加明显的被观测到。
以上是使用二阶梯度算子实现的,下面换到一阶梯度算子。
图像经过sobel算子后可以直接得到图像所有的边缘成分
显然,梯度算子较拉普拉斯算子在灰度变化区域的响应要更加的强烈,而其对于小细节和噪声的响应要比拉普拉斯弱。我们的目的自然是要保留灰度变化强烈区域的细节且要降低灰度变化平坦区域的噪声。结合两者的优点,一般采取的做法是:将梯度图像平滑处理(降噪),再用拉普拉斯图像与其相乘,得到的结果与原图相加即可得到最佳的锐化图像。
下面显示的是最终的锐化图像,可见其噪声要少了很多,并且具有很好的增强效果。
同样的,最后使用伽马变换实现动态范围的扩大。
实现源码
clc; clear all; close all; f = imread('Fig0306(a)(bone-scan-GE).tif'); f = f(:,:,1); imshow(f); w = fspecial('laplacian',0) g1 = imfilter(f,w,'replicate'); %% %二阶微分算子-laplace % imshow(g1); %加法运算得到锐化图像 % figure; imshow(f+g1); %解决出现负灰度归零的问题 f2=im2double(f); g2=imfilter(f2,w,'replicate'); % figure; imshow(g2); % figure; imshow(f2-g2); %换模板 w2=[1 1 1;1 -8 1;1 1 1] g3=imfilter(f2,w2,'replicate'); % imshow(f2-g3); % %幂变换增强对比度 % res=imadjust(f2-g3,[0 1],[0 1],0.6); % imshow(res); %% %一阶微分算子-sobel hx=[-1 -2 -1;0 0 0 ;1 2 1];%生产sobel垂直梯度模板 hy=hx'; %生产sobel水平梯度模板 grad_x=filter2(hx,f2,'same'); grad_y=filter2(hy,f2,'same'); grad=abs(grad_x) + abs(grad_y); %得到图像的sobel梯度 % imshow(grad); %平滑Sobel图像 wAve = fspecial('average',[3 3]); ave = imfilter(f2, wAve); % figure; imshow(ave); %c*e掩模图像 mask = (f2-g2).*ave; % imshow(mask); %加法运算锐化图像 res = mask + f2; % figure; imshow(res); %幂变换增强对比度 res=imadjust(f,[0 1],[0 1],0.6); figure; imshow(res);
相关文章推荐
- MUSICA(多尺度图像对比度增强)算法的简要原理及VC实现
- 【算法学习】【图像增强】【Retinex】White Patch Retinex 程序解读
- 图像处理之增强---图像增强算法四种,图示与源码,包括retinex(ssr、msr、msrcr)和一种混合算法
- 数字图像处理实践[3]---夜间图像增强
- opencv 彩色图像对比度增强
- 医学图像增强
- 图像增强的GUI设计
- opencv矩阵Mat的运算——在DIP作业(图像增强)中出现的问题
- 小波变换用于图像增强、去噪
- 空间域和频域结合的图像增强技术及实现
- Matlab编程实现图像增强与去噪
- 第五章 医学图像增强
- 图像增强-分数阶微分(vc++)
- 图像增强算法之 限制对比度自适应直方图均衡化算法原理
- 基于Opencv和Mfc的图像处理增强库GOCVHelper(索引)
- 图像增强方法总结
- opencv 彩色图像对比度增强
- 灰度图像--图像增强 灰度变换
- 空间域图像增强
- 水下图像增强相关算法的一个简单小结