[00]数字图像处理-matlab速成
原本听的是mooc武汉大学的数字图像处理课程,但是无奈老师读ppt的能力太强,不太适应,后面的课程对于实验方面的要求甚低,无奈之下到处找课程,终于找到了一个适合自己的教程《王伟强-数字图像处理》,今天开始连载,希望3.20日之前能够完成课程的学习,加油!
预计连载的目录
- 导言与MATLAB快速介绍
- 空域处理(I) - 亮度变换(I)
- 空域处理(II)- 卷积与线性移动不变系统
- 频域处理(I)- 傅立叶变换
- 频域处理(II)- 高低频滤波器与频域处理框架
- 图像复原(I)- 噪声与相关的去噪技术
- 图像复原(II)- 降质函数与约束最小二乘恢复方法
- 彩色图像处理
- 小波变换与图像处理(I)- 小波的相关理论
- 小波变换与图像处理(II)- 尺度函数、小波函数、快速小波变换
基本概念
数字图像处理DigitalImageProcessing,DIP
冈萨雷斯将数字图像处理看成一个黑箱,输入一个图片,输出也是一个图片
图像分析就是输出属性
视觉就是输出理解
matlab:配置环境当前目录和搜索路径
添加或修改搜索路径,右击桌面图标属性修改设置起始位置
matlab:.m文件
matlab分为两种文件,一种是脚本文件,类似于dos系统中的批处理文件,特点就是所有变量都是全局变量,运行完之后的变量不会从系统中清除。另外一种函数文件,外部看是看不出来的,特点就是函数变量除了特殊声明都是局部变量。
数字图像的表示
也就是说,图像的矩阵存储形式是从0,0位置开始,而matlab中图像的矩阵存储形式是1,1开始。
读取一幅图像
使用Matlab ipt读取一幅图像,ipt就是图像处理工具箱。
f=imread('bird.jpg');
- imread从当前目录读取文件,如果失败,它将尝试在搜索路径中找到该文件
- 请注意分号;,如果不加分号,命令窗口将显示图像的矩阵值。
- matlab中的字符串是单引号。
获取图像的信息
显示或写入图像
- imshow(f)
- imshow(f,G)
- imshow(f,[low,high])
- imshow(f,[])
- imwrite(f,'filename')
- imwrite(f,'filename','ext')
- imwrite(f,'filename','quality',q)
质量指标q的范围是0-100,值越低,图像质量越差,压缩率越高。
图像类型
- 强度图像/灰度图像
- 灰度图像是一个数据矩阵,它的值被缩放以表示强度。
- 当灰度图像的像素是uint8或uint16类型时,它们的取值是
[0,255]或[0,65535]范围内的整数。 - 如果图像是double类型的,则像素值为浮点数。按照惯例,经
过缩放之后double类型的灰度图像的像素值落在[0,1]范围内
- 二值图像
- 二值图像是由0和1组成的逻辑阵列。
- 数值阵列使用逻辑函数转换为二进制。
- 如果A包含0和1以外的元素,则使用逻辑函数将所有非零数值转换为逻辑真(1),并将所有值为0的项转换为逻辑假(0)
- 索引图像
BMP图像标识其为索引图像
- 图像可以是索引图像的,也可以是真颜色图像。
- 索引图像将颜色作为索引数组存储到colormap图中。
数据号代表着调色板的索引号,从下往上存储。对于数据量大的图像节省空间
- RGB图像
是目前见到的最多的图像,又叫真彩图像。
- 真彩色图像不使用colormap;相反,每个像素的颜色值直接存储为RGB三元组。colormap也就是调色板
- 在MATLAB中,真彩色图像对象的CData属性是一个三维(m×n×3)数组。这个数组由三个m×n矩阵组成,它们沿着第三维连接在一起。
数据类型
C语言中主要是int,double。matlab中int分的很细,u代表不带符号的,uint代表usigned,非负数。
数据类型和图像类型之间转换
读入一个图片通常是整型,直接进行傅里叶变换是错误的,因此需要转换为double型。
- 通常我们将图像称为(数据 - 图像类型)的图像
例如“uint8强度图像”仅指代像素值是uint8类型的强度图像 - 数据类之间转换简单,语法为
B = data class name(A)
其中数据类名是数据类表第一列中的名称之一。例如A是一个uint8类型的数组,精度更高的double类型数组B是由命令B = double(A)生成的。这种转换在整本书中很常见,因为matlab希望数值计算中的操作数是双精度浮点数。
数据转换超过255直接截断过于粗暴,因此ipt中通常采用伸缩的方式
如何分析?im2uint8,所有超过[0,1],以外的数都会进行区分。将<0的-0.5设置为0,>1的1.5设置为1,整体乘以255
所有<0设置0,所有>255设置为1,(128-(-12))/(300+12)=0.4487
索引
w=v ' ,代表共轭转置。
A = magic(5),每一行每一列每一个对角线的和都拉丁方5,和为65.
sum(A)是一个行向量,sum(A()是一个数
mean(A)每一科的平均数,mean(A()所有科的平均数
把c语言的 !换成了 ~
- MATLAB 语言专门针对矩阵运算进行了优化。尽可能地利用这一优势可以极大地加快计算速度。
- 循环向量化
- 数组预分配
[00]数字图像处理-matlab速成的更多相关文章
- 数字图像处理(MATLAB版)学习笔记(1)——第1章 绪言
0.下定决心 当当入手数字图像处理一本,从此开此正式跨入数字图像处理大门.以前虽然多多少少接触过这些东西,也做过一些相关的事情,但感觉都不够系统,也不够专业,从今天开始,一步一步地学习下去,相信会有成 ...
- 数字图像处理(MATLAB版)学习笔记(2)——第2章 灰度变换与空间滤波
0.小叙闲言 1.本章整体结构 2.书中例子 例2.1 主要是使用函数imadjust,来熟悉一下灰度处理,体验一把 >> imread('myimage.jpg'); >> ...
- Matlab绘图基础——colormap在数字图像处理及三维图形展示上的应用(分层设色)
色图(color map)是MATLAB系统引入的概念.在MATLAB中,每个图形窗口只能有一个色图. 色图是m×3 的数值矩阵,它的每一行是RGB三元组.色图矩阵可以人为地生成 ...
- 基于小波变换的数字图像处理(MATLAB源代码)
基于小波变换的数字图像处理(MATLAB源代码) clear all; close all; clc;M=256;%原图像长度N=64; %水印长度[filename1,pathname]=uiget ...
- 《数字图像处理原理与实践(MATLAB版)》一书之代码Part6
本文系<数字图像处理原理与实践(MATLAB版)>一书之代码系列的Part6,辑录该书第281至第374页之代码,供有须要读者下载研究使用.代码运行结果请參见原书配图,建议下载代码前阅读下 ...
- 《数字图像处理原理与实践(MATLAB版)》一书之代码Part2
本文系<数字图像处理原理与实践(MATLAB版)>一书之代码系列的Part2(P43~80),代码运行结果请參见原书配图,建议下载代码前阅读下文: 关于<数字图像处理原理与实践(MA ...
- 《数字图像处理原理与实践(MATLAB文本)》书代码Part7
这篇文章是<数字图像处理原理与实践(MATLAB文本)>一本书的代码系列Part7(由于调整先前宣布订单,请读者注意分页程序,而不仅仅是基于标题数的一系列文章),第一本书特色186经225 ...
- 数字图像处理的Matlab实现(1)—绪论
第1章 绪论 1.1 什么是数字图像处理 一幅图像可以定义为一个二维函数\(f(x,y)\),这里的\(x\)和\(y\)是空间坐标,而在任意坐标\((x,y)\)处的幅度\(f\)被称为这一坐标位置 ...
- matlab数字图像处理 入门基础
本代码基于张铮主编的<数字图像处理与机器视觉>一书. 源图片:lena A = imread ('lena.jpg'); %读入图像lena.jpg,赋给变量A %imwrite(A,'l ...
随机推荐
- HihoCoder-1870 Jin Yong’s Wukong Ranking List(并查集)
我发现大佬好像都是用拓扑排序写的(本菜鸡不会拓扑哭唧唧 说一下并查集的做法吧... 就是找两人右边的(辣鸡的那个人)那个是否比左边厉害,厉害的话就矛盾. 如果他俩没比较过就把厉害的并到辣鸡的. (辣鸡 ...
- IntelliJ IDEA 运行java程序时出现“程序发生找不到或无法加载主类 cn.test1.test1”错误
在你程序不出现错误,而且你的编译器已经成功导入后 成功导入的样子 你可以重新打开一个项目 这就可以了^_^
- Dubbo从入门到实践
1 Dubbo出现的背景 随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进. 我们传统的网站结构为 ...
- 二、Jmeter 后置处理器(BeanShell PostProcessor)
1.新建JDBC Request,如下图所示: 重要的参数说明: Variable Name:数据库连接池的名字,需要与JDBC Connection Configuration的Variable N ...
- ASP.NET 部署IIS后如何访问共享目录文件
1.我的电脑-->管理-->系统工具-->本地用户和组-->用户-->右键新建用户-->创建一个与远程文件夹相同的账号密码! 如下图: 以上为部署接口服务器中的用户 ...
- [Golang]-5 协程、通道及其缓冲、同步、方向和选择器
目录 协程 通道 通道缓冲 通道同步 通道方向 通道选择器 协程 Go 协程 在执行上来说是轻量级的线程. 代码演示 import ( "fmt" "time" ...
- 牛客网多校第4场 D Another Distinct Values 【构造】
题目:戳这里 题意,n*n的矩阵,只能填-1,0,1,问能不能使该矩阵的任意行和列的和都不想等. 解题思路:戳这里 可以说是一目了然了 附ac代码: 1 #include<iostream> ...
- ZOJ 2563 Long Dominoes(状压DP)题解
题意:n*m的格子,用1 * 3的矩形正好填满它,矩形不能重叠,问有几种填法 思路:poj2411进阶版.我们可以知道,当连续两行的摆法确定,那么接下来的一行也确定.当第一行还有空时,这时第三行必须要 ...
- hdu2333-贪心,如何去后效性,背包太大怎么办,如何最大化最小值,从无序序列中发掘有序性质
补充一下我理解的中文题意.. 你要重新组装电脑..电脑有一些部件..你的预算有b,b(1~1e9),有n个部件..每个部件有类型和名称以及价钱和质量现在你要在不超过预算b的情况下..每个类型都买一个部 ...
- web 安全 & web 攻防: XSS(跨站脚本攻击)和 CSRF(跨站请求伪造)
web 安全 & web 攻防: XSS(跨站脚本攻击)和 CSRF(跨站请求伪造) XSS(跨站脚本攻击)和CSRF(跨站请求伪造) Cross-site Scripting (XSS) h ...