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. strlen和sizeof的差别

    一.sizeof     sizeof(...)是运算符,而不是一个函数.     一个简单的样例: int a; cout<<sizeof a<<endl;     在头文件 ...

  2. 动作之CCActionInstant(立即动作)家族

    立即动作就是不需要时间,马上就完成的动作.立即动作的共同基类是CCActionInstant.CCActionInstant的常用子类有: CCCallFunc:回调函数包装器 CCFlipX:X轴翻 ...

  3. 【转】coco2d-x 纹理研究

    1.通常情况下用PVR格式的文件来进行图片显示的时候,在运行速度和内存消耗方面都要比PNG格式要快和小.一般情况下PVR消耗的内存比PNG消耗的内存小25%左右.PVR格式可以用ZWoptex导出.P ...

  4. 15 Linux Split and Join Command Examples to Manage Large Files--reference

    by HIMANSHU ARORA on OCTOBER 16, 2012 http://www.thegeekstuff.com/2012/10/15-linux-split-and-join-co ...

  5. Objective-C语法快速参考(C# 和 Objective-C 语法的比较)

    大部分有一点其他平台开发基础的初学者看到XCode ,第一感想是磨拳擦掌,看到 Interface  Builder 之后,第一感想是跃跃欲试,而看到Objective-C 的语法,第一感想就变成就望 ...

  6. wxPython ImportError DLL load failed: %1 不是有效的 Win32 应用程序 解决办法

    原因:python是32位的,装了64位的Wxpython时会报错,具体错误是安装库文件与python的动态库的位数未一致. 特别留意32位/64位指的不是 系统的位数,而是Python的位数. 64 ...

  7. js_DOM_04

    1.DOM   |-Document:文档对象 2.节点的导航 3.DHTML模型的对象   |-**document.all;获得页面中所有的元素对象       |-document.getEle ...

  8. ACM——A + B Problem (3)

    Home Problems 1086 A + B Problem (3) 时间限制(普通/Java):1000MS/3000MS          运行内存限制:65536KByte总提交:2317 ...

  9. MVC中使用jquery的浏览器缓存问题

    jquery在浏览器ajax调用的时候,对缓存提供了很好的支持,POST方式不能被缓存,使用POST的原因,明确了数据不能被缓存,或者避免JSON攻击(JSON返回数据的时候可以被入侵) jquery ...

  10. php有三种工作模式

    php有三种工作模式. 其中是最常见的是php作为一个模块工作在一个多进程的webserver中, 例如apache webserver. apache会启动一个主进程, 多个子进程(php). 主进 ...