文档章节

OpenCV函数cv2DRotationMatrix实现图像旋转

moki_oschina
 moki_oschina
发布于 2016/04/08 23:32
字数 214
阅读 118
收藏 0
#include <cv.h>
#include <highgui.h>
#pragma comment(lib, "cv.lib")
#pragma comment(lib, "cxcore.lib")
#pragma comment(lib, "highgui.lib")
int main()
{
 double degree = 30; // rotate 30 degree
 double angle = degree  * CV_PI / 180.; // angle in radian
 double a = sin(angle), b = cos(angle); // sine and cosine of angle
 // Load source image as you wish
 IplImage *imgSrc = cvLoadImage("test.png");
 int w_src = imgSrc->width;
 int h_src = imgSrc->height;
 cvNamedWindow ("src", 1);
 cvShowImage ("src", imgSrc);
 // Make w_dst and h_dst to fit the output image
 int w_dst = int(h_src * fabs(a) + w_src * fabs(b));
 int h_dst = int(w_src * fabs(a) + h_src * fabs(b));
 // map matrix for WarpAffine, stored in statck array
 double map[6];
 CvMat map_matrix = cvMat(2, 3, CV_64FC1, map);
 // Rotation center needed for cv2DRotationMatrix
 CvPoint2D32f pt = cvPoint2D32f(w_src / 2, h_src / 2);
 cv2DRotationMatrix(pt, degree, 1.0, &map_matrix);
 // Adjust rotation center to dst's center,
 // otherwise you will get only part of the result
 map[2] += (w_dst - w_src) / 2;
 map[5] += (h_dst - h_src) / 2;

 // We need a destination image
 IplImage *imgDst = cvCreateImage(cvSize(w_dst, h_dst), 8, 3);
 cvWarpAffine(
  imgSrc, 
  imgDst,
  &map_matrix,
  CV_INTER_LINEAR | CV_WARP_FILL_OUTLIERS,
  cvScalarAll(0)
  );
 // Don't forget to release imgSrc and imgDst if you no longer need them
 cvNamedWindow( "dst_big", 1 );
 cvShowImage( "dst_big", imgDst);
 cvWaitKey(0);
 cvReleaseImage(&imgSrc);
 cvReleaseImage(&imgDst);
 return 0;
}

本文转载自:http://blog.csdn.net/augusdi/article/details/9022719

moki_oschina
粉丝 26
博文 202
码字总数 44864
作品 0
成都
程序员
私信 提问
(三)OpenCV中的图像处理之改变色彩空间及图像的几何变换

注释:本文翻译自OpenCV3.0.0 document->OpenCV-Python Tutorials,包括对原文档种错误代码的纠正 3.1 改变色彩空间 3.1.1 目标: 这章节,学会如何转换图像的色彩空间,如BGR与Gray之间的转...

u014403318
2018/05/28
0
0
OpenCV Mat格式存储YUV图像

YUV图像用的比较多,而且YUV图像的格式众多(YUV格式可以参考YUV pixel formats),如何用OpenCV的Mat类型来存储YUV图像也是经常遇到的问题。 对于YUV444图像来说,就很简单。YUV的三个分量的...

爱鱼
02/19
0
0
[Python图像处理] 十二.图像几何变换之图像仿射变换、图像透视变换和图像校正

版权声明:本文为博主原创文章,转载请注明CSDN博客源地址!共同学习,一起进步~ https://blog.csdn.net/Eastmount/article/details/88679772 该系列文章是讲解Python OpenCV图像处理知识,前...

Eastmount
03/20
0
0
【译文】16个OpenCV功能开启你的计算机视觉之旅(附Python代码)

原文标题:16 OpenCV Functions to Start your Computer Vision journey (with Python code) 原文链接:https://www.analyticsvidhya.com/blog/2019/03/opencv-functions-computer-vision-p......

等花花不开
04/23
0
0
opencv 任意角度旋转图像

//OpenCV 4 下的图像任意角度的旋转 //需要inter公司的OpenCV的支持. //OpenCV 4下的图像任意角度的旋转 //待旋转的图像IplImage* Img_old //返回的旋转后图像 IplImage* Img_tmp. //旋转的角...

长平狐
2012/07/12
586
0

没有更多内容

加载失败,请刷新页面

加载更多

Java 8 Optional:优雅地避免 NPE

本篇文章将详细介绍 Optional 类,以及如何用它消除代码中的 null 检查。在开始之前首先来看下什么是 NPE,以及在 Java 8 之前是如何处理 NPE 问题的。 空指针异常(NullPointException,简称...

武培轩
17分钟前
1
0
CountDownLatch实现的并发框架

目录结构 package com.**.**.base.support.executor;import lombok.NoArgsConstructor;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;imp......

MR_TE
18分钟前
7
0
学习记录(day06-事件、按键修饰符、计算属性)

[TOC] 1.1 事件修饰符/按键修饰符 vue 通过事件修饰符对dom事件细节进行控制 <标签 @事件.修饰符="函数"></标签>.prevent ---阻止浏览器默认行为.stop ---阻止浏览器事件冒泡.e...

庭前云落
38分钟前
5
0
006-Sigle-基于blockstack去中心化博客

本篇文章主要讲解有关基于Blockstack的Sigle是一个去中心化的博客项目; 官网地址:https://www.sigle.io/ Github地址:https://github.com/pradel/sigle 页面展示: 介绍: A beautiful de...

Riverzhou
45分钟前
17
0
驰骋工作流引擎开发平台属性功能的隐藏显示介绍

关键字: 工作流程管理系统 工作流引擎 asp.net工作流引擎 java工作流引擎. 表单引擎 工作流功能说明 工作流设计 工作流快速开发平台 业务流程管理 bpm工作流系统 java工作流主流框架 自定义...

孟娟
47分钟前
14
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部