javacv旋转图片

    
 // 逆时针旋转图像degree角度(原尺寸)
  private IplImage rotateImage(IplImage img)
     {
      /*IplImage img_rotate = IplImage.create(img.width(), img.height(),  IPL_DEPTH_8U, 2);
      //旋转中心为图像中心
      CvPoint2D32f center = new CvPoint2D32f(); 
      center.x(img.width()/2.0f+0.5f);
      center.y(img.height()/2.0f+0.5f);
      //计算二维旋转的仿射变换矩阵
      CvMat cvMat = cvCreateMat(2, 3, CV_32F);
     
      cvZero (img_rotate);
      cv2DRotationMatrix( center, degree,1.0, cvMat);*/
     
      //变换图像,并用黑色填充其余值
      //cvWarpAffine(img,img_rotate, cvMat,CV_INTER_LINEAR+CV_WARP_FILL_OUTLIERS,cvScalarAll(0) );
  IplImage img_rotate = IplImage.create(img.height(),img.width(),  IPL_DEPTH_8U, 2);
  cvTranspose(img, img_rotate);
  cvTranspose(img_rotate, img);
  //cvTranspose(img, img_rotate);
      cvFlip(img,null,-1);
     
      return img;
     }
 
  public static IplImage rotate(IplImage image, double angle) {




         IplImage copy = cvCloneImage(image);
         IplImage rotatedImage = cvCreateImage(cvGetSize(copy), copy.depth(), copy.nChannels());


         //Define Rotational Matrix
         CvMat mapMatrix = cvCreateMat(2, 3, CV_32FC1);


         //Define Mid Point
         CvPoint2D32f centerPoint = new CvPoint2D32f();
         centerPoint.x(copy.width() / 2);
         centerPoint.y(copy.height() / 2);


         //Get Rotational Matrix
         cv2DRotationMatrix(centerPoint, angle, 1.0, mapMatrix);


         //Rotate the Image
         cvWarpAffine(copy, rotatedImage, mapMatrix, CV_INTER_CUBIC + CV_WARP_FILL_OUTLIERS, cvScalarAll(170));
         cvReleaseImage(copy);
         cvReleaseMat(mapMatrix);


         return rotatedImage;
     }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值