openCv 图像顺时针、逆时针旋转
通过下面这个函数调用
Rotate90(workImg,270); //顺时针旋转
Rotate90(workImg,90); //逆时针旋转
实现,其实用该函数旋转任意度数对正方形图都ok,只是长方形图旋转后会有拉伸部分,不好掌握新图的长宽。
void Rotate90(IplImage *workImg,int angle)
{
int opt = ; // 1: 加缩放 0: 仅旋转
double factor; // 缩放因子
IplImage *pImage;
IplImage *pImgRotation = NULL; pImage = workImg;
pImgRotation = cvCloneImage(workImg); angle=-angle; // 创建 M 矩阵
float m[];
// Matrix m looks like:
// [ m0 m1 m2 ] ----> [ a11 a12 b1 ]
// [ m3 m4 m5 ] ----> [ a21 a22 b2 ] CvMat M = cvMat(,,CV_32F,m);
int w = workImg->height;
int h = workImg->width; if (opt) factor = (cos(angle*CV_PI/.)+1.0)*;
else factor = ; m[] = (float)(factor*cos(-angle*CV_PI/.));
m[] = (float)(factor*sin(-angle*CV_PI/.));
m[] = -m[];
m[] = m[];
// 将旋转中心移至图像中心
m[] = w*0.5f;
m[] = h*0.5f; //---------------------------------------------------------
// dst(x,y) = A * src(x,y) + b
cvZero(pImgRotation);
cvGetQuadrangleSubPix(pImage,pImgRotation,&M);
//--------------------------------------------------------- cvNamedWindow("Rotation Image");
cvFlip(pImgRotation);
cvShowImage("Rotation Image",pImgRotation); cvReleaseImage( &pImgRotation );
cvWaitKey(); cvDestroyWindow("Rotation Image");
}
from: http://blog.csdn.net/abcjennifer/article/details/7269968
openCv 图像顺时针、逆时针旋转的更多相关文章
- [opencv] 图像几何变换:旋转,缩放,斜切
几何变换 几何变换可以看成图像中物体(或像素)空间位置改变,或者说是像素的移动. 几何运算需要空间变换和灰度级差值两个步骤的算法,像素通过变换映射到新的坐标位置,新的位置可能是在几个像素之间,即不一定 ...
- opencv 图像各方向旋转
1. 简介 计算机图形学中的应用非常广泛的变换是一种称为仿射变换的特殊变换,在仿射变换中的基本变换包括平移.旋转.缩放.剪切这几种.本文以及接下来的几篇文章重点介绍一下关于旋转的变换,包括二维旋转变换 ...
- OpenCV图像旋转
图像旋转是指图像按照某个位置转动一定角度的过程,旋转中图像仍保持这原始尺寸.图像旋转后图像的水平对称轴.垂直对称轴及中心坐标原点都可能会发生变换,因此需要对图像旋转中的坐标进行相应转换. 如下图: 假 ...
- opencv图像的旋转
#include"stdafx.h"#include"opencv2/opencv.hpp" using namespace cv;// clockwise 为 ...
- OpenCV 图像旋转实现
1 旋转矩形 首先建议阅读图像旋转算法原理-旋转矩阵,这篇博客可以让你很好地理解图像中的每一个点是如何进行旋转操作的.其中涉及到了图像原点与笛卡尔坐标原点之间的相互转换以及点旋转的一些公式推导. 这里 ...
- OpenCV:OpenCV图像旋转的代码
OpenCV图像旋转的代码 cv::transpose( bfM, bfM ) 前提:使用两个矩阵Mat型进行下标操作是不行的,耗费的时间太长了.直接使用两个指针对拷贝才是王道.不知道和OpenCV比 ...
- css3背景图水平垂直顺时针逆时针翻转旋转
.bgPlay{ background:url(../images/bg.jpg) no-repeat; /* background-size:auto auto || cover 代表以宽或高填满元 ...
- PyOpenCV图像逆时针旋转90度
warpAffine方法效果很搓,留下大片黑色区域. 使用flip和transpose可以实现逆时针旋转90度.先flip或先transpose均可. #coding:utf-8 import cv2 ...
- 关于OpenCV图像操作的默认参数问题
本系列文章由 @yhl_leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/51559490 在使用OpenCV以及其 ...
随机推荐
- 【笔记】W3C CSS关键属性
white-space属性: white-space 属性设置如何处理元素内的空白. 可能的值 值 描述 normal 默认值,合并所有空格,换行符会被浏览器忽略 pre 空白会被浏览器保留.其行为方 ...
- WPF学习06:转换控件内容为可存储图片
在图形软件中,我们经常使用到"另存为图片"的功能,本文即介绍如何将WPF控件显示内容转换为图片. , , PixelFormats.Pbgra32); bitmapRender.R ...
- 小甲鱼汇编语言006第二章 寄存器(CPU工作原理)01
http://baidu.ku6.com/watch/09215216064281951074.html?page=videoMultiNeed
- 这些年,我收集的JavaScript代码
这些年,我收集的JavaScript代码(一) http://www.cnblogs.com/jscode/archive/2012/07/25/2605395.html 这些年,我收集的JavaSc ...
- Java工程转换为Maven工程-b
1. 前言 在开发中经常要建立一个Maven的子工程,对于没有模板的同学来说从Java工程来转换也是一个不错的选择.本文就如何从一个Java工程创建一个Maven工程做了一个介绍,相信对于将一个Jav ...
- SVN服务器搭建和使用
SVN服务器搭建和使用 Subversion是优秀的版本控制工具,其具体的的优点和详细介绍,这里就不再多说. 首先来下载和搭建SVN服务器. 现在Subversion已经迁移到apache网站上了,下 ...
- 高德开发 android 出现 key 鉴权失败
环境windows + android studio 原因: 曾经更改过key.store 解决办法: 首先运行cmd移动到keystore的目录下keytool -list -keystore 文件 ...
- 如何在cocos2dx lua的回调函数里面用self
回调里的self是另一个不同的东西了,通常是触发回调的对象,或_G或nil ,视情况而定 我的 print(self) 输出 userdata function MyClass:sayFromCall ...
- matlab和本机MySQL链接
1.安装好 ***matlab*** 和 ***mysql***: 2.[下载](http://dev.mysql.com/downloads/connector/j/#downloads) mysq ...
- HDU 4587 TWO NODES 割点
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4587 题意: 删除两个点,使连通块的数目最大化 题解: 枚举删除第一个点,然后对删除了第一个点的图跑 ...