图片的旋转与放缩
2011-05-29 15:58
106 查看
void size()
{
IplImage *src =cvLoadImage("first3.bmp",0);
IplImage *dst = 0;
int delta = 1;
int angle = 0;
int opt = 1;
double factor;
dst = cvCloneImage (src);
cvNamedWindow ("src", 1);
cvShowImage ("src", src);
for (;;)
{
float m[6];
// Matrix m looks like:
//
// [ m0 m1 m2 ] ===> [ A11 A12 b1 ]
// [ m3 m4 m5 ] [ A21 A22 b2 ]
//
CvMat M = cvMat (2, 3, CV_32F, m);
int w = src->width;
int h = src->height;
if (opt) // 旋转加缩放
factor = (cos (angle * CV_PI / 180.) + 1.0) * 2;
else // 仅仅旋转
factor = 1;
m[0] = (float) (factor * cos (-angle * 2 * CV_PI / 180.));
m[1] = (float) (factor * sin (-angle * 2 * CV_PI / 180.));
m[3] = -m[1];
m[4] = m[0];
// 将旋转中心移至图像中间
m[2] = w * 0.5f;
m[5] = h * 0.5f;
// dst(x,y) = A * src(x,y) + b
cvZero (dst);
cvGetQuadrangleSubPix (src, dst, &M);
cvNamedWindow ("dst", 1);
cvMoveWindow("dst",200,200);
cvShowImage ("dst", dst);
if (cvWaitKey (1) == 27) //ESC
break;
angle = (int) (angle + delta) % 360;
} // for-loop
}
{
IplImage *src =cvLoadImage("first3.bmp",0);
IplImage *dst = 0;
int delta = 1;
int angle = 0;
int opt = 1;
double factor;
dst = cvCloneImage (src);
cvNamedWindow ("src", 1);
cvShowImage ("src", src);
for (;;)
{
float m[6];
// Matrix m looks like:
//
// [ m0 m1 m2 ] ===> [ A11 A12 b1 ]
// [ m3 m4 m5 ] [ A21 A22 b2 ]
//
CvMat M = cvMat (2, 3, CV_32F, m);
int w = src->width;
int h = src->height;
if (opt) // 旋转加缩放
factor = (cos (angle * CV_PI / 180.) + 1.0) * 2;
else // 仅仅旋转
factor = 1;
m[0] = (float) (factor * cos (-angle * 2 * CV_PI / 180.));
m[1] = (float) (factor * sin (-angle * 2 * CV_PI / 180.));
m[3] = -m[1];
m[4] = m[0];
// 将旋转中心移至图像中间
m[2] = w * 0.5f;
m[5] = h * 0.5f;
// dst(x,y) = A * src(x,y) + b
cvZero (dst);
cvGetQuadrangleSubPix (src, dst, &M);
cvNamedWindow ("dst", 1);
cvMoveWindow("dst",200,200);
cvShowImage ("dst", dst);
if (cvWaitKey (1) == 27) //ESC
break;
angle = (int) (angle + delta) % 360;
} // for-loop
}
相关文章推荐
- 图片的旋转与放缩
- UIView关于图片的旋转与放缩
- Android中轴旋转特效实现,制作别样的图片浏览器
- H5移动端下html上传图片被旋转问题(转)
- 用android来实现图片的绘制以及旋转缩放案例分析
- WPF图片控件的旋转、缩放、翻转
- Android 实现图片的单点缩放、拖动、旋转
- 手机上传图片横向显示,根据需要进行旋转。
- OpenCV旋转图片
- 网页中图片旋转的几种实现方式
- 关于android中调用系统拍照,返回图片是旋转90度..
- Opencl图片旋转编写
- java AffineTransform 图片 向右旋转90度
- Windows Mobile上实现图片任意角度旋转
- flex ActionScript 库 objectHandelrs实现图片旋转,拖拽操作
- Android Tween动画之RotateAnimation实现图片不停旋转
- Android Tween动画之RotateAnimation实现图片不停旋转
- js 动画,一个图片旋转的动画
- 旋转图片
- Android 中轴旋转特效实现,制作别样的图片浏览器