一个matlab数字图像处理程序的解释
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数字图像处理程序的解释的更多相关文章
- stdafx.h、stdafx.cpp是干什么用的?为什么我的每一个cpp文件都必须包含stdafx.h? Windows和MFC的include文件都非常大,即使有一个快速的处理程序,编
sstdafx.h.stdafx.cpp是干什么用的?为什么我的每一个cpp文件都必须包含stdafx.h? Windows和MFC的include文件都非常大,即使有一个快速的处理程序,编译程序也要 ...
- [学习一个] Matlab GUI 学习笔记 Ⅰ
Matlab GUI 学习笔记 Ⅰ 1. Foreword Matlab 是严格意义上的编程语言吗?曾经有人告诉我他是通过 Matlab 学会了面对对象编程,我是不信的,但这依然不妨碍它在特殊领域的强 ...
- B站上的一个MATLAB与神经网络的视频,捡漏
▶ av15514817.这里集中了一些从视频中学到的散点. ▶ 语句 "edit + 函数名" 可以打开部分内置函数的源代码.非公开的源代码这会打开一个全是注释的文档. ▶ 函数 ...
- BootStrap的一个标准框架的内容解释——来源于bootstrap官网
<!DOCTYPE html><!--HTML5的定义--><html lang="zh-cn"> <head> <meta ...
- matlab数字图像简单的加密方法
图像加密的重要性可想而知,每个人都会有自己的小秘密,通过图像加密的方法可以保护自己的照片等的安全. 一般情况下,图像加密可以分为以下几个步骤: 1.选择图像加密算法 2.根据算法获取秘钥 3.根据保存 ...
- matlab图像处理程序大集合
1.图像反转 MATLAB程序实现如下:I=imread('xian.bmp');J=double(I);J=-J+(256-1); %图像反转线性变换H=uint8( ...
- 一个简单但详细的解释Windows文件映射读取数据文件的例子
#include <windows.h>#include <string.h>#include <string>#include <iostream>u ...
- OpenCV开发环境搭建-并测试一个图像灰度处理程序
转载地址:http://blog.csdn.net/sjz_iron/article/details/8614070
- 接触Matlab5年一个总结(Matlab要掌握的一些要点 )
阅读目录 前言 Matlab的开发环境与简单介绍 Matlab的常见命令 Matlab的灵魂-矩阵操作 Matlab的.m或.fig的编程与技巧 从大二开始接触到matlab,讲真,这是一个我觉得很良 ...
随机推荐
- Hadoop与分布式开发
hadoop上的并行应用程序开发是基于MapReduce编程框架的,MapReduce编程模型的原理是:利用一个输入的key/value对集合来产生一个输出的key/value对集合. Map ...
- [React ] React Fundamentals: Component Lifecycle - Mounting Usage
The previous lesson introduced the React component lifecycle mounting and unmounting. In this lesson ...
- POJ1329题
Circle Through Three Points Time Limit : 2000/1000ms (Java/Other) Memory Limit : 20000/10000K (Jav ...
- last_9t's_ramsey
cannot finish his face
- iOS自定义UICollectionViewLayout之瀑布流
目标效果 因为系统给我们提供的 UICollectionViewFlowLayout 布局类不能实现瀑布流的效果,如果我们想实现 瀑布流 的效果,需要自定义一个 UICollectionViewLay ...
- 转:XMLP报表导出为excel时设置文本不自动转为数字
转自:http://yedward.net/?id=337 对于这个问题,只要在RTF模版中设置下强制LTR即可,设置方法如下: 图1:勾选强制LTR 也可以自己输入下面的代码: <fo:bid ...
- JVM笔记7:类加载器
虚拟机设计团队把类加载阶段中的"通过一个类的全限定名来获取描述此类的二进制字节流"这个动作放到Java虚拟机外部实现,以便让应用程序自己决定如何去获取所需要的类,实现这个动作的代码 ...
- 移动端 touch 实现 拖动元素
var homeMove = (function () { //touch自适应 var k = "ontouchend" in window ? "touchend&q ...
- Java类加载及实例化的调用顺序
标题起得略拗口,大概意思就是说在一个Java类中,域和构造方法的调用顺序. 1. 没有继承的情况 单独一个类的场景下,初始化顺序为依次为 静态数据,继承的基类的构造函数,成员变量,被调用的构造函数. ...
- datejs lib
// Get today's date Date.today(); // Add 5 days to today Date.today().add(5).days(); // Get Friday o ...