clc;                                                   %clc是清除command window里的内容
clear all; %clear是清除workspace里的变量
close all; %close all来关闭所有已经打开的图像窗口
image_ori = imread('skeleton_orig.bmp'); %读取图像数据
image_ori = rgb2gray(image_ori); % 将rgb模式转换成灰度图
figure; %画图
subplot(,,); %把区域分成2行4列,并把图像显示到第一个
imshow(image_ori); %显示图像
title('a.original image'); %显示标题
image_ext = [zeros(,);image_ori;zeros(,)]'; %分别在上下两边加一行,并转置
image_ext = [zeros(,);image_ext;zeros(,);]'; %分别在左右两边加一列,并转置
image_double = im2double(image_ext); %将imdata_add转换成双精度 % lapa_modelace Operating
lapa_mode = [-,-,-;-,,-;-,-,-]; %拉普拉斯变换用模板[-,-,-;-,,-;-,-,-];
lapa_mode = lapa_mode(:); %转换成列矩阵
for x = ::
for y = ::
A =image_double([x-:x+],[y-:y+]); %从image_double中以(x,y)为中心取出一个3*3的矩阵
image_lapa(x-,y-) = lapa_mode'*A(:); %将取出的矩阵与模板进行拉普拉斯变换取得的值放在image_lapa的(x-1,y-1)位置
end
end
subplot(,,);
imshow(image_lapa);
title('b.lapalace image');
subplot(,,); %Sharpening Operating
image_ab_sha = image_lapa+im2double(image_ori);
imshow(image_ab_sha);
title('c.a+b sharpening image'); %Grads Operating
sobel_mode_1= [-,-,-;,,;,,]; %定义梯度处理的一个掩膜
sobel_mode_1= sobel_mode_1(:);
sobel_mode_2 = [-,,;-,,;-,,]; %定义梯度处理的另一个掩膜
sobel_mode_2 = sobel_mode_2(:);
for x = ::
for y = ::
A =image_double([x-:x+],[y-:y+]);
mid_1(x-,y-) = sobel_mode_1'*A(:);
mid_2(x-,y-) = sobel_mode_2'*A(:);
end
end
image_grad = abs(mid_1)+abs(mid_2); %对gx、gy绝对值化,然后求和
subplot(,,);
imshow(image_grad);
title('d.grads image'); %Smoothing Operating
Mxy_Ext = [zeros(,);image_grad;zeros(,)]; %分别在上下两边加两行
Mxy_Ext = [zeros(,);Mxy_Ext';zeros(2,804)]'; %先将Mxy_Ext转置,然后分别在左右两边加一列,最后将所得结果再转置
Linear_smooth = ones(,); %创建一个5*5矩阵,初始值全是1
Linear_smooth = Linear_smooth(:); %将矩阵Linear_smooth转换成列矩阵
for x = :: %大循环,x从3--,步进是1
for y = :: %小循环,y从3--,步进是1
A = Mxy_Ext([x-:x+],[y-:y+]); %以Emx_Ext(x,y)为中心,截取5*5矩阵复制到A中
image_smooth(x-,y-) = Linear_smooth'*A(:); %将获取的矩阵值各个值求和然后放在新矩阵image_smooth的(x-2,y-2)位置
end
end
image_smooth = image_smooth/; %求平均值
subplot(,,); %把区域分成1行4列,并把图像显示到第一个
imshow(image_smooth); %显示图像
title('e.smoothing image'); %显示标题 %Masking Operating
image_mask = image_ab_sha.*image_smooth; %点乘
subplot(,,);
imshow(image_mask);
title('f.Masking image'); %Sharpening Operating
image_af_sha = im2double(image_ori) + image_mask;
subplot(,,);
imshow(image_af_sha);
title('g.a+f sharpening image'); %Exponential Transform
image_fin = image_af_sha.^0.5; %幂律变换
subplot(,,);
imshow(image_fin);
title('h.final result');

一个matlab数字图像处理程序的解释的更多相关文章

  1. stdafx.h、stdafx.cpp是干什么用的?为什么我的每一个cpp文件都必须包含stdafx.h? Windows和MFC的include文件都非常大,即使有一个快速的处理程序,编

    sstdafx.h.stdafx.cpp是干什么用的?为什么我的每一个cpp文件都必须包含stdafx.h? Windows和MFC的include文件都非常大,即使有一个快速的处理程序,编译程序也要 ...

  2. [学习一个] Matlab GUI 学习笔记 Ⅰ

    Matlab GUI 学习笔记 Ⅰ 1. Foreword Matlab 是严格意义上的编程语言吗?曾经有人告诉我他是通过 Matlab 学会了面对对象编程,我是不信的,但这依然不妨碍它在特殊领域的强 ...

  3. B站上的一个MATLAB与神经网络的视频,捡漏

    ▶ av15514817.这里集中了一些从视频中学到的散点. ▶ 语句 "edit + 函数名" 可以打开部分内置函数的源代码.非公开的源代码这会打开一个全是注释的文档. ▶ 函数 ...

  4. BootStrap的一个标准框架的内容解释——来源于bootstrap官网

    <!DOCTYPE html><!--HTML5的定义--><html lang="zh-cn"> <head> <meta ...

  5. matlab数字图像简单的加密方法

    图像加密的重要性可想而知,每个人都会有自己的小秘密,通过图像加密的方法可以保护自己的照片等的安全. 一般情况下,图像加密可以分为以下几个步骤: 1.选择图像加密算法 2.根据算法获取秘钥 3.根据保存 ...

  6. matlab图像处理程序大集合

    1.图像反转 MATLAB程序实现如下:I=imread('xian.bmp');J=double(I);J=-J+(256-1);                 %图像反转线性变换H=uint8( ...

  7. 一个简单但详细的解释Windows文件映射读取数据文件的例子

    #include <windows.h>#include <string.h>#include <string>#include <iostream>u ...

  8. OpenCV开发环境搭建-并测试一个图像灰度处理程序

    转载地址:http://blog.csdn.net/sjz_iron/article/details/8614070

  9. 接触Matlab5年一个总结(Matlab要掌握的一些要点 )

    阅读目录 前言 Matlab的开发环境与简单介绍 Matlab的常见命令 Matlab的灵魂-矩阵操作 Matlab的.m或.fig的编程与技巧 从大二开始接触到matlab,讲真,这是一个我觉得很良 ...

随机推荐

  1. Java 实现组合(Composite)模式

    类图 /** * 树 总体 * * @author stone * */ public class Tree { private TreeNode root; //根节点 public Tree(St ...

  2. oc中的类学习笔记1

    1.oc中的类和构造方法 NSAutoreleasePool * pool =[[NSAutoreleasePool alloc] init]; NSAutoreleasePool是一个类,alloc ...

  3. 线程间操作无效 progressBar2线程不能被访问

    出现这个问题解决的方法有两种第一种就是使用 // Form1.CheckForIllegalCrossThreadCalls = false;//不对跨线程的调用 使用这个的时候是判断线程是否运行正常 ...

  4. IP地址基础知识

    IP地址基础知识 网络号:用于识别主机所在的网络:主机号:用于识别该网络中的主机. 一 OSI/RM模型 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 二 TCP/IP模型 数据链路层( ...

  5. jQuery 定时局部刷新(setInterval)方法总结

    来自:http://www.jbxue.com/article/8516.html 1.jQuery 定时局部刷新(setInterval),显示时间的代码. <head> <scr ...

  6. Optimal Logging

    by Anthony Vallone How long does it take to find the root cause of a failure in your system? Five mi ...

  7. T-SQL基础 (子查询,连接查询,交叉查询,事务|| 笔记0807)

    一: A.子查询: 1.select 字段名 from table where 字段名=(select 字段名 from table 条件)  //只能做1个匹配 2.select 字段名 from ...

  8. NUnit使用详解(二)

    转载:http://hi.baidu.com/grayworm/item/39aa11c5d9375d56bdef6990 五:常用断言 在NUnit中,断言是单元测试的核心.NUnit提供了一组丰富 ...

  9. 关于ligerUI中ligerTree代码中的一个bug,造成该控件无法通过url的POST方式加载数据

    该bug造成ligerTree参数中的method无论你怎么设置都只能用get方式提交 由于本人水平有限,只是找到原因,但无法修正 ligerUI v1.1.9 版本中的ligerui.all.js文 ...

  10. java 简单分页/总结

    模型(实体) dao层 dao的实现daoimpl层 service层 然后是servlet 把service层加载到servlet中就可以传值了,马上就能看见效果了 jsp页面来了 当然不能忘了在L ...