《数字图像处理》学习笔记(四)--混合空间增强法(待修改)
来源:互联网 发布:淘宝睡衣常用模特 编辑:程序博客网 时间:2024/05/17 07:40
这次试验问题很多,应该还是数据格式的问题,先发上来吧,放假回去先用Matlab做下,再改改。。。。。
下面对一幅人体骨骼扫描图进行混合空间增强(有点吓人)。。。我们的目标是通过图像锐化突出骨骼的更多细节来增强图像。由于图像灰度的动态范围很窄并且伴随着很高的噪声,所以很难对其进行增强。对此,我们采取的策略是:首先用拉普拉斯变换突出图像中的小细节,然后用梯度法突出其边缘。平滑过的梯度图像将用于掩蔽拉普拉斯图像,最后通过灰度变换来扩展图像的灰度动态范围。
1. 首先进行拉普拉斯变换
首先通过拉普拉斯变换突出图像的小细节。
2. 再进行拉普拉斯加强算法(未标定,补做。。。)
图像加强(锐化)
3. 再进行sobel梯度算法
再通过sobel算法突出边缘
4. 再进行拉普拉斯加强后的图像与sobel处理后的图像乘法
得到强边缘和噪声减少的结果
5. 最后进行幂律变换(这个还没做。。。。完全弄明白回来补做)
#include "dipHeader.h"void main(){IplImage* bone = cvLoadImage("bone.tif",0);IplImage* bone2s = cvCreateImage(cvGetSize(bone),IPL_DEPTH_16S,bone->nChannels);IplImage* bonelap = cvCreateImage(cvGetSize(bone),IPL_DEPTH_16S,bone->nChannels);IplImage* bonelap2f = cvCreateImage(cvGetSize(bone),IPL_DEPTH_32F,bone->nChannels);IplImage* bonesub = cvCreateImage(cvGetSize(bone),IPL_DEPTH_16S,bone->nChannels);//IplImage* bonecal = cvCreateImage(cvGetSize(bone),IPL_DEPTH_16S,bone->nChannels);IplImage* bonesob = cvCreateImage(cvGetSize(bone),IPL_DEPTH_8U,bone->nChannels);IplImage* bonesob2f = cvCreateImage(cvGetSize(bone),IPL_DEPTH_32F,bone->nChannels);IplImage* bonemul = cvCreateImage(cvGetSize(bone),IPL_DEPTH_32F,bone->nChannels);cvLaplace(bone,bonelap,7);cvConvertScale(bone , bone2s , 1.0, 0.0);cvSobel(bone,bonesob,1,0,3);cvConvertScale(bonesob,bonesob2f,1.0,0.0);cvConvertScale(bonelap,bonelap2f,1.0,0.0);cvAddWeighted(bone2s,1.0,bonelap, -1.0, 0.0, bonesub);cvMultiplyAcc(bonelap2f,bonesob2f,bonemul);/*int x,y;for (y=0;y<bonesub->height;y++){short* bonesub_data = (short*)(bonesub->imageData+y*bonesub->widthStep);short* bonecal_data = (short*)(bonecal->imageData+y*bonecal->widthStep);for(x=0;x<bonesub->widthStep;x++){bonecal_data[x] = (short)(bonesub_data[x]+255) / 2;}}*/cvNamedWindow("bone",0);cvShowImage("bone",bone);cvNamedWindow("bonelap",0);cvShowImage("bonelap",bonelap);cvNamedWindow("bonesub",0);cvShowImage("bonesub",bonesub);//cvNamedWindow("bonecal",0);//cvShowImage("bonecal",bonecal);cvNamedWindow("bonesob",0);cvShowImage("bonesob",bonesob);cvNamedWindow("bonemul",0);cvShowImage("bonemul",bonemul);cvWaitKey(0);}
0 0
- 《数字图像处理》学习笔记(四)--混合空间增强法(待修改)
- 数字图像处理学习笔记--图像空间域增强
- 《数字图像处理》学习笔记(三)--空间域图像增强
- 数字图像处理学习笔记四
- 【学习笔记】【数字图像处理】空间滤波
- 数字图像处理-空间域增强(四)(空间域滤波)
- 数字图像处理之空间域图像增强
- 《数字图像处理》第三版笔记(四)空间滤波
- 《数字图像处理》学习笔记(二)--平滑空间滤波器
- 数字图像处理学习笔记
- 数字图像处理学习笔记
- 【数字图像处理学习笔记之四】图像腐蚀、膨胀
- 【数字图像处理学习笔记之一】数字图像噪声
- 数字图像处理-空间域图像增强(二)(直方图)
- 数字图像处理第一章学习笔记
- 数字图像处理学习笔记二
- 数字图像处理学习笔记三
- 数字图像处理学习笔记五
- Cstring与其它类型互转
- 年终工作总结:给新手程序员的几个建议
- vs2010插件之VisualSVN
- C# List<T>泛型的排序和删除
- android开源项目[tool篇]
- 《数字图像处理》学习笔记(四)--混合空间增强法(待修改)
- system-config-selinux工具安装
- JsonKit 在xcode5 上报错
- 本周算法:快速排序—三路快排 vs 双基准
- XULRunner 下载安装
- mysql:四舍五入函数
- Java数据结构总论
- 使用Sublime Text 2 编辑Markdown
- 详解android:scaleType属性