图像处理基础知识总结1

图像处理基础知识总结(1)

前言:从接触图像处理、生物特征识别、视频编解码、机器学习已两年有余,还没有系统的总结过,正好最近刷一下Tsinghua的Tipa课件和PKU的Digital Image Processing,对以前的图像处理基础知识做一些回顾,整理成笔记形式,代码和示例基于matlab给出。主要包含内容:

  • 原理总结
  • 部分matlab实现
  • matlab源代码解析

1.图像坐标变换

  • 旋转
  • 尺度(缩放)
  • 平移
  • 错切
  • 反射
  • 投影
  • 反变换

1.1 旋转

原理

绕原点逆时针旋转θ度角的变换公式是x′=x cosθ − ysinθ与y′=xsinθ+ycosθ,在二维空间中用矩阵表示为:
cmd-markdown-logo

但是为了可以表示仿射变换,需要使用齐次坐标,常见的矩阵变化都是在三维下进行的,在矩阵中增加一列与一行,除右下角的元素为1外其它部分填充为0,通过这种方法,所有的线性变换都可以转换为仿射变换。此时旋转矩阵如下所示

logo

仿射变换:包含平移及线性映射,为了使矩阵乘法可同时实现这两个功能,需要所有向量在其末端扩长 “1”且所有矩阵都于底部添加一排零,右边扩长一列转换向量,及右下角添加一个 “1”。
注:仿射变换具体请参考:wiki_仿射变换

MATLAB 实现

利用花花公子杂志上的Lean的部分图像进行示例(-.- 关键部分都被数字图像处理的作者们截掉了,只有一张lean的脸保留了下来。。。。天真的我),matlab中图像旋转很简单,调用imrotate函数即可

clc;clear;close all;
%% image rotate
img = imread('/Users/Documents/MATLAB/lena.jpg');
rotateImg = imrotate(img,30); 
figure;
subplot(1,2,1),imshow(img);
subplot(1,2,2),imshow(rotateImg);

效果如下:可以看到图像逆时针旋转了30度
cmd-markdown-logo

简单解析

打开matla

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值