opencv仅仅实现图片倾斜倾斜

原创 2012年03月22日 15:30:52

 

#include "cv.h"
#include "highgui.h"

int main()
{
	double degree =30;
	double angle = degree  * CV_PI / 180.; 

	IplImage *imgSrc = cvLoadImage("l:\\test\\5.jpg");
	int w_src = imgSrc->width;
	int h_src = imgSrc->height;
	cvNamedWindow ("src", 1);
	cvShowImage ("src", imgSrc);
	
	CvPoint2D32f src_point[4];
	CvPoint2D32f dst_point[4];
	src_point[0].x=-w_src/2;
	src_point[0].y=-h_src/2;
	dst_point[0].x=-w_src/2-h_src/2*sin(angle)*cos(angle);
	dst_point[0].y=-h_src/2*cos(angle)*cos(angle);
	src_point[1].x=w_src/2;
	src_point[1].y=-h_src/2;
	dst_point[1].x=w_src/2-h_src/2*sin(angle)*cos(angle);
	dst_point[1].y=-h_src/2*cos(angle)*cos(angle);
	src_point[2].x=w_src/2;
	src_point[2].y=h_src/2;
	dst_point[2].x=w_src/2+h_src/2*sin(angle)*cos(angle);
	dst_point[2].y=h_src/2*cos(angle)*cos(angle);
	src_point[3].x=-w_src/2;
	src_point[3].y=h_src/2;
	dst_point[3].x=-w_src/2+h_src/2*sin(angle)*cos(angle);;
	dst_point[3].y=h_src/2*cos(angle)*cos(angle);
	float m[6];
	CvMat M= cvMat(2, 3, CV_64FC1, m);
	cvGetAffineTransform( src_point, dst_point,&M);

	int w_dst2 =h_src*cos(angle)*sin(angle)+w_src;
	int h_dst2 =h_src*cos(angle)*cos(angle);
	IplImage *imgDst2 = cvCreateImage(cvSize(w_dst2, h_dst2), 8, 3);
	cvWarpAffine(
		imgSrc, 
		imgDst2,
		&M,
		CV_INTER_LINEAR | CV_WARP_FILL_OUTLIERS,
		cvScalarAll(0)
		);

	cvNamedWindow( "dst2", 1 );
	cvShowImage( "dst2", imgDst2);
	cvWaitKey(0);
	cvReleaseImage(&imgSrc);
	cvReleaseImage(&imgDst2);
	return 0;
}
//求仿射矩阵时,仅前三个点即可

OpenCV学习笔记(十二)旋转文本矫正

旋转文本矫正: 图像文本旋转通常在仿射变换时获取图像的倾斜角度,利用傅里叶变换中的时域与频域的变换关系,实现旋转文本的校正。 旋转文本的特征明显就是存在分行间隔,当文本图像旋转时,其频域中的频谱也...

OpenCV仪表数据识别(四):图像倾斜矫正

在上一篇文章中我们得到了分行后的数据图像Row1.jpg-Row4.jpg,本篇文章介绍数字的倾斜矫正。1.方法 用Row1.jpg做示范。 本图数字倾斜情况并不明显。但是由于拍摄角度的问题,有的...

对倾斜的图像进行修正——基于opencv 透视变换

这篇文章主要解决这样一个问题: 有一张倾斜了的图片(当然是在Z轴上也有倾斜,不然直接旋转得了o(╯□╰)o),如何尽量将它纠正到端正的状态。 而要解决这样一个问题,可以用到透视变换。 ...

【OpenCV】基于傅立叶变换和霍夫变化的文本倾斜校正

//此函数应用傅立叶变换进行原始图像倾斜校正 IplImage* mycvRotateImage(const IplImage* src) { int op_width = cvGetOpt...

opencv 霍夫变换检测直线

#include #include #include #include using namespace std; int main() { IplImage *srcRGB = ...

openCV-图片倾斜矫正java版

核心思想:由于openCV是用C编写,因此对C的支持度最高,曾经尝试转换成JAVA,最终都失败了,因此核心底层代码仍然是C版的基本思路:java调用dll客户端->生成.h头文件->新建win32项目...

HTML5实现倾斜图片墙效果

  • 2013年06月01日 15:18
  • 71KB
  • 下载

opencv实现旋转+倾斜

#include "cv.h" #include "highgui.h" int main() { IplImage *imgSrc = cvLoadImage("l:\\test\\5...

HTML5实现图片倾斜墙效果源码

  • 2013年06月08日 15:23
  • 3.31MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:opencv仅仅实现图片倾斜倾斜
举报原因:
原因补充:

(最多只允许输入30个字)