旋转图片,及带剪切的旋转
来源:互联网 发布:孕囊大小三个数据分析 编辑:程序博客网 时间:2024/04/29 13:45
//旋转 剪切原图IplImage* rotateImageCut(IplImage* Img_old,int angle){ IplImage* Img_tmp =cvCloneImage( Img_old); float m[6]; CvMat M = cvMat( 2, 3, CV_32F, m ); CvPoint2D32f center; center.x=float (Img_old->width/2.0+0.5); center.y=float (Img_old->height/2.0+0.5); cv2DRotationMatrix( center, angle,1, &M); cvWarpAffine(Img_old,Img_tmp, &M,CV_INTER_LINEAR+CV_WARP_FILL_OUTLIERS,cvScalarAll(0) ); return Img_tmp;}//旋转 原图不变 clockwise 为true则顺时针旋转,否则为逆时针旋转 IplImage* rotateImage(IplImage* src, int angle, bool clockwise=false) { angle = abs(angle) % 180; if (angle > 90) { angle = 90 - (angle % 90); } IplImage* dst = NULL; int width = (double)(src->height * sin(angle * CV_PI / 180.0)) + (double)(src->width * cos(angle * CV_PI / 180.0 )) + 1; int height = (double)(src->height * cos(angle * CV_PI / 180.0)) + (double)(src->width * sin(angle * CV_PI / 180.0 )) + 1; int tempLength = sqrt((double)src->width * src->width + src->height * src->height) + 10; int tempX = (tempLength + 1) / 2 - src->width / 2; int tempY = (tempLength + 1) / 2 - src->height / 2; int flag = -1; dst = cvCreateImage(cvSize(width, height), src->depth, src->nChannels); cvZero(dst); IplImage* temp = cvCreateImage(cvSize(tempLength, tempLength), src->depth, src->nChannels); cvZero(temp); cvSetImageROI(temp, cvRect(tempX, tempY, src->width, src->height)); cvCopy(src, temp, NULL); cvResetImageROI(temp); if (clockwise) flag = 1; float m[6]; int w = temp->width; int h = temp->height; m[0] = (float) cos(flag * angle * CV_PI / 180.); m[1] = (float) sin(flag * angle * CV_PI / 180.); m[3] = -m[1]; m[4] = m[0]; // 将旋转中心移至图像中间 m[2] = w * 0.5f; m[5] = h * 0.5f; // CvMat M = cvMat(2, 3, CV_32F, m); cvGetQuadrangleSubPix(temp, dst, &M); cvReleaseImage(&temp); return dst; }
0 0
- 旋转图片,及带剪切的旋转
- 上传图片,剪切,旋转
- matlab 图片的剪切和旋转
- Android实现对图片的缩放、剪切、旋转、存储
- Android实现对图片的缩放、剪切、旋转、存储
- Android实现对图片的缩放、剪切、旋转、存储
- java上传带旋转角度的图片旋转问题
- 一个带图片的旋转特效
- 安卓图片剪切,修正3星等图片旋转问题的工具类
- 图片工具类(图片上传、压缩、旋转、剪切)
- 用 Chukeh.dll 轻松实现图片的缩略图,旋转,缩放,剪切,拼合,水印等操作
- 强大的PHP 图片处理类(水印、透明度、缩放、锐化、旋转、翻转、剪切、反色)
- Android开发之--Android实现对图片的缩放、剪切、旋转、存储
- EasyFRMS.Image C# 实现图片剪切、缩放、旋转、水印操作
- Quartz2D——旋转、平移、缩放、剪切圆形图片
- tensorflow图片预处理,随机亮度,旋转,剪切,翻转。
- 图片的旋转
- 图片旋转的代码
- TCP三次握手及四次挥手
- FFT-1-FFT计划概述 .
- centos网卡em1改为eth0
- Clear the “Open With” menu in Mac OS X
- openfire在内网的情况下 文件传输代理的设置
- 旋转图片,及带剪切的旋转
- AnalogClock的使用(二):配合数字时针
- 实时开发框架Meteor API解读系列<三>Publish and Subscribe-(2)
- hadoop 安装出现的几种异常的处理方法
- ioctl在socket中的一些用法及示例
- Git详解之 Git起步
- 学习z-stack协议栈的serialApp例子(1)
- [ CSS ] line-height 与垂直居中!
- ViewPageIndicator开源框架