数字图像处理成长之路5:仿射变换(旋转)
来源:互联网 发布:windows强制关机快捷键 编辑:程序博客网 时间:2024/05/20 03:48
今天学习affine transformation,这个变换充分体现了数学之美,怪不得有那么一句话,“科学中的皇后是数学”。
这个变换包含旋转,错切,翻转等,这里只通过学习旋转,来了解其中的共性。不同的变换只是核矩阵不同。
我们只来看看旋转,旋转是如何实现的,网上有关于旋转矩阵核的推导,很简单。
如:
http://ask.csdn.net/questions/218260
至于旋转的原理或者公式,网上也是很多,这里暂不多写。
这个是逆时针旋转了45度。
for (int i = 0; i < srcMat.cols ; i ++) for (int j = 0; j < srcMat.rows ; j ++) {//把图像坐标系转换成x, y坐标系 x = i - x0; y = -(j - y0); //对x,y 坐标系中的点作旋转变换 X = x * cos(w) - y * sin(w); Y = x * sin(w) + y * cos (w); //如果变换后的坐标不超出x, y坐标系的四周 if ( -(srcMat.cols - x0 ) < X and X < srcMat.cols - x0 and -(srcMat.rows - y0) < Y and Y < srcMat.rows - y0) {//把x,y坐标系还原成图像坐标系 X = X + x0; //Y = Y-y0,恢复到第四象限 //前面取负,让Y值变正 Y = -(Y - y0); tmpMat.at<uchar>(Y, X) = srcMat.at<uchar>(j, i); } }
程序并不复杂,实现了绕中心点x0, y0的逆时针旋转。但是由于用的坐标系不同,需要进行变换,而变换这一块倒是容易让人想不明白。
阅读全文
0 0
- 数字图像处理成长之路5:仿射变换(旋转)
- 数字图像处理成长之路8:霍夫线变换
- 数字图像处理基础(十一)---缩放、角度旋转和仿射变换及代码实现
- 数字图像处理成长之路4: C语言与离散傅立叶变换(DFT)
- 数字图像处理之几何变换
- 数字图像处理之灰度变换
- Python-OpenCv之图像基本处理-平移,缩放,旋转,翻转,裁剪及仿射变换
- 仿射变换 图像旋转
- opencv图像处理之仿射变换
- 【数字图像处理】六.MFC空间几何变换之图像平移、镜像、旋转、缩放详解
- 数字图像处理成长之路1:look up table
- 数字图像处理成长之路2:mat与通道
- 数字图像处理成长之路3:操作像素(彩色sobel)
- 数字图像处理成长之路7:边缘检测(sobel canny)
- 数字图像处理成长之路14:QT调用摄像头
- 数字图像处理成长之路9:轮廓提取c++版
- 数字图像处理成长之路11:harris角点检测
- 数字图像处理成长之路12:重映射实例
- 2017年9月20号,递归求和
- Spring Boot整合Dubbo运行
- ZigBee无线通讯技术
- 使用docker安装gitlab
- Delays between passcode attempts [iDevice]
- 数字图像处理成长之路5:仿射变换(旋转)
- hibernate使用学习
- Android项目快速编译之Freeline-Android的配置集成
- android中开启子线程
- Foxmail免费下载
- VS关闭突出显示当前行
- 在keil仿真中遇见的一些问题
- 搭建 Linux 下 GitLab 服务器
- sql 循环