数字图像处理 图像变换
数字图像基础
- 参考资料
- 一、人眼视觉特性
- 二、图像基本知识
- 1.图像类别
- 2.图像输入
- 3.图像输出
- 三、图像处理
- 1.图像类型转化
- 2.图像变换
- 点变换
- 代数运算
- 几何运算
参考资料
一、人眼视觉特性
韦伯率:50%概率感觉到亮度变化时的 ΔII\frac{\Delta I}{I}IΔI为韦伯率。
韦伯-费希纳定律:心理量和物理量之间关系的定律,即感觉量的大小与刺激强度的对数成正比。
马赫带
对比度(人眼相对亮度感觉):: 灰度值之差比基础值。
频谱混叠 :采样频率小于2fmax时候出现(不满足采样定理)
二、图像基本知识
1.图像类别
rgb图像 :R,G,B通道各有自己的灰度值,合成得到彩色图像。 例如 lena.jpg [512,512,3] 是一个3维数组
索引色图像:调色板和数据矩阵 调色板若干行3列
灰度图像:只有一个数据矩阵,灰度值越大越白
二值图像:只有两个灰度值
2.图像输入
- imread
A = imread(filename,fmt) - imwrite
imwrite(A,filename,fmt) - imfinfo
3.图像输出
- image :直接映射显示图像
- imagesc :图像缩放函数(imagescale),线性映射显示图像
- imagesc(A) 将矩阵A中的元素数值按大小转化为不同颜色,并在坐标轴对应位置处以这种颜色染色
- imagesc(x,y,A) x,y决定坐标范围,x,y应是两个二维向量,即x=[x1 x2],y=[y1 y2],matlab会在[x1,x2]*[y1,y2]的范围内染色。 如果x或y超过两维,则坐标范围为[x(1),x(end)]*[y(1),y(end)]
- imshow :
- imshow(I):直接调用,因为当图像为double型时imshow函数会把显示范围设置成[0 , 1],这样小于0的就变成黑色了,大于1的就变成白色了,所以处理不当就会出现全白的情况。
- imshow( I/(max(I(:))):针对直接调用imshow函数出现的问题,用max(I(:) ) 对图像矩阵进行归一化再显示,这样负数部分会变黑,正数部分还可以正常显示,但有一部分信息丢失了。
- imshow(I,[low,high]):用指定的灰度范围 [low high]显示灰度图像I。显示结果,图像中灰度值等于或低于low的都将用黑色显示,而灰度值大于等于high的都显示为白色,介于low和high之间的用其灰度级的默认值的中间色调显示。如果你用了一个空矩阵([]) 来代替 [low high], imshow 函数将使用 [min(I(:))max(I(:))]作为第二个参数。imshow(gray)不等于imshow(gray,[]),后者对比度变高。
三、图像处理
1.图像类型转化
cat :合成图像序列
dither :图像抖动 印刷、视觉效果有提升,但是图像会损失一部分清晰度
im2bw
mat2gray :实现图像矩阵的归一化操作
I = mat2gray(A, [amin amax])
将图像矩阵A中介于amin和amax的数据归一化处理, 其余小于amin的元素都变为0, 大于amax的元素都变为1。im2double
mat2gray()和im2double()区别:这两个如果都是对uint8数据操作,区别就在于前者是归一化操作,归一化后也在0~1之间,自然结果也是double类型,后者是将数据从0~255映射到0~1。例如:
I = uint8([1,1,2,3]);I1 = mat2gray(I); % 归一化,I1结果是double型[0,0,0.5,1] I2 = im2double(I); % 映射化,I2结果是double型[0.0039,0.0039,0.0078,0.0118] 0-255作为总长度
uint8和im2uint8
在数据类型转换时候uint8和im2uint8的区别,uint8的操作仅仅是将一个double类型的小数点后面的部
分去掉;但是im2uint8是将输入中所有小于0的数设置为0,而将输入中所有大于1的数值设置为255,再将所
有其他值乘以255。
图像数据在计算前需要转换为double,以保证精度;很多矩阵数据也都是double的。要想显示其,必须先
转换为图像的标准数据格式。如果转换前的数据符合图像数据标准(比如如果是double则要位于0~1之间)
,那么可以直接使用im2uint8。如果转换前的数据分布不合规律,则使用uint8,将其自动切割至0~255(
超过255的按255)。最好使用mat2gray,将一个矩阵转化为灰度图像的数据格式(double)
2.图像变换
点变换
- 线性点运算
2. 分段线性点运算
3.非线性变换:
- 对数变换 s=c⋅log(1+r)s=c\cdot log(1+r)s=c⋅log(1+r)
- 幂次变换 s=c⋅rγs=c\cdot r ^\gammas=c⋅rγ
代数运算
1.加法运算:去除“叠加性” 噪声
gˉ(x,y)=1M∑i=1M[fi(x,y)+ei(x,y)]=f(x,y)+1M∑i=1Mei(x,y)\begin{aligned} \bar{g}(x, y) &=\frac{1}{M} \sum_{i=1}^{M}\left[f_{i}(x, y)+e_{i}(x, y)\right] \\ &=f(x, y)+\frac{1}{M} \sum_{i=1}^{M} e_{i}(x, y) \end{aligned}gˉ(x,y)=M1i=1∑M[fi(x,y)+ei(x,y)]=f(x,y)+M1i=1∑Mei(x,y)
2.减法运算:
C(x,y)=A(x,y)−B(x,y)C(x, y)=A(x, y)-B(x, y)C(x,y)=A(x,y)−B(x,y)
- 差影法检测变化;
- 混合图像分离;
几何运算
g(x,y)=f(u,v)=f(p(x,y),q(x,y))g(x, y)=f(u, v)=f(p(x, y), q(x, y))g(x,y)=f(u,v)=f(p(x,y),q(x,y))
其中 u=p(x,y),v=q(x,y)u=p(x,y),v=q(x,y)u=p(x,y),v=q(x,y) 这种坐标变换关系称作几何变换
平移变换
[x1y11]=[10Δx01Δy001][x0y01]\left[\begin{array}{l} x_{1} \\ y_{1} \\ 1 \end{array}\right]=\left[\begin{array}{lll} 1 & 0 & \Delta x \\ 0 & 1 & \Delta y \\ 0 & 0 & 1 \end{array}\right]\left[\begin{array}{l} x_{0} \\ y_{0} \\ 1 \end{array}\right]⎣⎡x1y11⎦⎤=⎣⎡100010ΔxΔy1⎦⎤⎣⎡x0y01⎦⎤水平镜像
[x1y11]=[−10w010001][x0y01]\left[\begin{array}{c} x_{1} \\ y_{1} \\ 1 \end{array}\right]=\left[\begin{array}{ccc} -1 & 0 & w \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{array}\right]\left[\begin{array}{l} x_{0} \\ y_{0} \\ 1 \end{array}\right]⎣⎡x1y11⎦⎤=⎣⎡−100010w01⎦⎤⎣⎡x0y01⎦⎤
w为宽垂直镜像
[x1y11]=[1000−1h00−1][x0y01]\left[\begin{array}{c} x_{1} \\ y_{1} \\ 1 \end{array}\right]=\left[\begin{array}{ccc} 1 & 0 & 0 \\ 0 & -1 & h \\ 0 & 0 & -1 \end{array}\right]\left[\begin{array}{l} x_{0} \\ y_{0} \\ 1 \end{array}\right]⎣⎡x1y11⎦⎤=⎣⎡1000−100h−1⎦⎤⎣⎡x0y01⎦⎤
h为高仿射变换
平移、比例缩放和旋转变换都是仿射变换的特殊情况
[uv]=[a2a1a0b2b1b0][xy1]\left[\begin{array}{l} u \\ v \end{array}\right]=\left[\begin{array}{lll} a_{2} & a_{1} & a_{0} \\ b_{2} & b_{1} & b_{0} \end{array}\right]\left[\begin{array}{l} x \\ y \\ 1 \end{array}\right][uv]=[a2b2a1b1a0b0]⎣⎡xy1⎦⎤
- 旋转变换(角度 β\betaβ )
正余余正符号同
通过极坐标的关系可求得旋转矩阵 这里 β>0 为顺时针旋转
旋转后图像可能出现空洞点,可以将 [x y] 同时赋值给 [x+1,y] [x,y+1] 以消除空洞,这也称为插值处理。
![]() |
![]() |
拓展画布公式:
hh=floor(h*cos(a)+w*sin(a))+1;
ww=floor(h*sin(a)+w*cos(a))+1;
c2=[hh;ww]/2;
推导:
clear all;clc;
% close all;
im=imread('1.jpg');%计算旋转矩阵
a=30*pi/180;
R=[cos(a) sin(a);-sin(a) cos(a)];%变换矩阵别记错了sz=size(im);
h=sz(1);
w=sz(2);
ch=sz(3);
%旋转中心
c1=[h;w]/2;%画布拓展
hh=floor(h*cos(a)+w*sin(a))+1;
ww=floor(h*sin(a)+w*cos(a))+1;
%新旋转中心,注意这是新画布的补偿
c2=[hh;ww]/2;im2=uint8(zeros(h,w,3));
for k=1:chfor i=1:hfor j=1:wp=[i;j];pp=round(R*(p-c1)+c2);%旋转变换if(1<=pp(1)&&pp(1)<=hh&&1<=pp(2)&&pp(2)<=ww)im2(pp(1)+1,pp(2),k)=im(i,j,k);%插值去除空洞点im2(pp(1),pp(2)+1,k)=im(i,j,k);%插值去除空洞点im2(pp(1),pp(2),k)=im(i,j,k);endendend
endfigure;
imshow(im2);
旋转30°效果
旋转超过90°会开始丢失图像。
数字图像处理 图像变换相关推荐
- 数字图像处理学习之路:图像变换(一)
数字图像处理归纳总结 1.1 数字图像处理基础 1.2 数字图像处理技术 1.3 图像处理一般流程 1.4 图像变换案例分析(如真彩色图像转换为灰度图像) 1.1 数字图像处理基础 概述:数字图像处理 ...
- 【基于MATLAB的数字图像处理】第三章·基本图像变换
系列文章 ·[基于MATLAB的数字图像处理]第一章·绪论 ·[基于MATLAB的数字图像处理]第二章·视觉系统与图像处理系统 ·[基于MATLAB的数字图像处理]第三章·基本图像变换 ·[基于MAT ...
- 【计算机视觉】数字图像处理(三)—— 图像变换原理分析
数字图像处理(三)-- 图像变换原理分析 一.图像变换的目的与用途 1. 图像变换的目的 2. 图像正交变换的要求 正交变换的应用 (一).傅里叶变换 1.傅里叶变换的理论基础与基本定义 2.连续函数 ...
- 数字图像处理 第五章 图像变换
目录 一.图像变换的概念和意义 图像处理方法的分类 频域变换的一般处理过程 二.傅立叶变换 傅里叶变换的作用 傅里叶变换的定义 傅里叶变换的条件 离散傅里叶变换 傅立叶变换的规律 FFT的应用-高通滤 ...
- 数字图像处理:图像变换的基本模型
数字图像处理:图像变换的基本模型 一.常用图象的变换模型 变换模型是指根据待匹配图像与背景图像之间几何畸变的情况,所选择的能最佳拟合两幅图像之间变化的几何变换模型.可采用的变换模型有如下几种:刚性变换 ...
- 数字图像处理——第四章 频率域滤波
数字图像处理--第4章 频率域滤波 文章目录 数字图像处理--第4章 频率域滤波 频率域 1.傅里叶级数原理 1.1.一维傅里叶变换 1.2.二维傅里叶变换 2.python×傅里叶级数 2.1.傅里 ...
- 数字图像处理必备基本知识
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达本文转自|新机器视觉 基础知识 1.数字图像: 数字图像,又称为数码 ...
- 数字图像处理知识点总结
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达本文转自|新机器视觉 数字图像处理知识点总结 第一章 导论 1. ...
- matlab 霍特林变换,数字图像处理(第3版面向CS2013计算机专业规划教材)
导语 内容提要 姚敏编著的<数字图像处理(第3版面向CS2013计算机专业规划教材)>详细介绍了数字图像处理的基本理论.主要技术和最新进展.全书共分13章,内容主要包括图像获取.图像变换. ...
最新文章
- Java Enum 使用
- 残疾人无障碍设施工程改造送上门 900户家庭
- [react] 在使用react过程中你都踩过哪些坑?你是怎么填坑的?
- leetcode python3 简单题217. Contains Duplicate
- java面向对象程序设计编程题,已拿到offer
- IIS配置文件上传大小限制
- 计算机485通讯原理,用RS-485设计的多机通信接口电路
- Python 批量修改文件名称测试
- IntelliJ Idea设置护眼浅绿色背景方法
- drawio 二次开发
- 在AndroidMenifest动态引用ApplicationId,解决INSTALL_FAILURE_CONFLICTION_PROVIDER
- 测量网页元素的大小和间距的利器
- 分块器评估与语言结构中的递归
- js用函数找出1 - 1000 之间7的倍数和包含7的数字,放入数组内
- 操作系统实验一 添加内核模块
- python节日贺卡绘制
- 《华尔街》观后笔记7——阳光交易
- 基于opencv第三方视觉库,通过内网IP调用手机摄像头,实现人脸识别与图形监测
- Python对电影Top250并进行数据分析
- webpack4踩坑——图片打包
热门文章
- 关于在手机端可以看到加入的百度网盘群,在pc段找不到的原因
- 教师计算机课游戏教学设计,《有趣的游戏》教学设计5篇
- FusionCharts Free (FCF) V3 新特性之样式(Styles)
- [转]sessionStorage在同一网站多个标签页内共享数据吗?这取决于标签页如何打开
- openwrt 开启p2p下载后不定时断流处理办法
- MG动画实例——星星图标
- 网站丨怎有怎么多神奇的网站呀
- Windows Sever2016磁盘分区
- FPGA SEU问题与SEM Core
- 苹果庆祝 7 月17 日 Emoji 世界表情符号日,带来众多新表情