医工互联

 找回密码
 注册[Register]

手机动态码快速登录

手机号快速登录

微信登录

微信扫一扫,快速登录

QQ登录

只需一步,快速开始

查看: 302|回复: 0
收起左侧

CT图像增强

[复制链接]

  离线 

发表于 7 天前 | 显示全部楼层 |阅读模式
CT图像增强

简介



  • 如下图所示,希望对这幅人体骨骼扫描图片实现增强的效果。
    1.jpeg

  • 通过这个实验, 我们可以了解到一阶微分算子以及二阶微分算子在图像细节信息以及边缘信息获取的原理;以及将其用在图像增强上的优缺点。
处理过程



  • 首先我们选择二阶微分算子-Laplace算子来处理图像g2,然后通过原图f2(double类型)减去g2来获取增强的图像。
    2.jpeg

  • 这里说明以下做减法而不是加法的原因,图像的二阶微分不为零的区域是在灰度变化的拐点。减去这部分区域可以明显增强图像灰度变化区域和灰度不变区域的区别。
  • 当lapace算子中心元素减小到-8时,再次做减法后会有更明显的增强效果。
    3.jpeg

  • 最后通过伽马运算来扩大灰度动态范围,使得肌肉组织更加明显的被观测到。
    4.jpeg




  • 以上是使用二阶梯度算子实现的,下面换到一阶梯度算子。
  • 图像经过sobel算子后可以直接得到图像所有的边缘成分
    5.jpeg

  • 显然,梯度算子较拉普拉斯算子在灰度变化区域的响应要更加的强烈,而其对于小细节和噪声的响应要比拉普拉斯弱。我们的目的自然是要保留灰度变化强烈区域的细节且要降低灰度变化平坦区域的噪声。结合两者的优点,一般采取的做法是:将梯度图像平滑处理(降噪),再用拉普拉斯图像与其相乘,得到的结果与原图相加即可得到最佳的锐化图像。
  • 下面显示的是最终的锐化图像,可见其噪声要少了很多,并且具有很好的增强效果。
    6.jpeg

  • 同样的,最后使用伽马变换实现动态范围的扩大。
    7.jpeg

实现源码

  1. clc;
  2. clear all;
  3. close all;
  4. f = imread('Fig0306(a)(bone-scan-GE).tif');
  5. f = f(:,:,1);
  6. imshow(f);
  7. w = fspecial('laplacian',0)
  8. g1 = imfilter(f,w,'replicate');
  9. %%
  10. %二阶微分算子-laplace
  11. % imshow(g1);
  12. %加法运算得到锐化图像
  13. % figure; imshow(f+g1);
  14. %解决出现负灰度归零的问题
  15. f2=im2double(f);
  16. g2=imfilter(f2,w,'replicate');
  17. % figure; imshow(g2);
  18. % figure; imshow(f2-g2);
  19. %换模板
  20. w2=[1 1 1;1 -8 1;1 1 1]
  21. g3=imfilter(f2,w2,'replicate');
  22. % imshow(f2-g3);
  23. % %幂变换增强对比度
  24. % res=imadjust(f2-g3,[0  1],[0  1],0.6);
  25. % imshow(res);
  26. %%
  27. %一阶微分算子-sobel
  28. hx=[-1 -2 -1;0 0 0 ;1 2 1];%生产sobel垂直梯度模板  
  29. hy=hx';                    %生产sobel水平梯度模板  
  30. grad_x=filter2(hx,f2,'same');
  31. grad_y=filter2(hy,f2,'same');  
  32. grad=abs(grad_x) + abs(grad_y);  %得到图像的sobel梯度  
  33. % imshow(grad);
  34. %平滑Sobel图像
  35. wAve = fspecial('average',[3 3]);
  36. ave = imfilter(f2, wAve);
  37. % figure; imshow(ave);
  38. %c*e掩模图像
  39. mask = (f2-g2).*ave;
  40. % imshow(mask);
  41. %加法运算锐化图像
  42. res = mask + f2;
  43. % figure; imshow(res);
  44. %幂变换增强对比度
  45. res=imadjust(f,[0  1],[0  1],0.6);
  46. figure; imshow(res);
复制代码
回复

使用道具 举报

提醒:禁止复制他人回复等『恶意灌水』行为,违者重罚!
您需要登录后才可以回帖 登录 | 注册[Register] 手机动态码快速登录 微信登录

本版积分规则

发布主题 快速回复 收藏帖子 返回列表 客服中心 搜索
简体中文 繁體中文 English 한국 사람 日本語 Deutsch русский بالعربية TÜRKÇE português คนไทย french

QQ|RSS订阅|小黑屋|处罚记录|手机版|联系我们|Archiver|医工互联 |粤ICP备2021178090号 |网站地图

GMT+8, 2024-11-5 06:05 , Processed in 0.270880 second(s), 61 queries .

Powered by Discuz!

Copyright © 2001-2023, Discuz! Team.

快速回复 返回顶部 返回列表