资源简介

opencv+vs2010实现图像旋转任意角度(边界正好填充),并可以实现反转回原图像大小。并做了直方图,还要有信噪比比较效果。

资源截图

代码片段和文件信息

#include 
#include “Rotate.h“
#include 
#include
#include 
#include 
#include 
#include 
#include    
#include  
#include   
#include 
#include 
#include “opencv2/imgproc/imgproc.hpp“
#include 

int main()


 cv::Mat SO;
 cv::Mat SO1;
  cv::Mat SO2;
  cv::Mat SO3;
 cv::Mat SO4;
  cv::Mat SO5;
  
  cv::Mat yuantu=cv::Mat::zeros(cv::Size(256 256) CV_8U);  
  cv::Mat zjltu=cv::Mat::zeros(cv::Size(256 256) CV_8U); 
  cv::Mat xxtu=cv::Mat::zeros(cv::Size(256 256) CV_8U);  
  cv::Mat sctu=cv::Mat::zeros(cv::Size(256 256) CV_8U);
 cv::Mat I=cv::imread(“Chapter2_1.pgm“);
 
 cv::namedWindow(“Original Image“0);
  cv:: resizeWindow(“Original Image“ 320 240);
 cv::imshow(“Original Image“I);
 Rotate rotate;
 
 rotate.zhifangtu(I  yuantu) ; 
  cv::namedWindow(“原图直方图“0);
  cv:: resizeWindow(“原图直方图“ 320 240);
 cv::imshow(“原图直方图“ yuantu);
  rotate.xinzaobi(I);
  


 double theta=15;
 theta = theta*CV_PI/180;
 int a=int(I.cols*fabs(cos(theta)) + I.rows*fabs(sin(theta)));
 int b=int(I.rows*fabs(cos(theta)) + I.cols*fabs(sin(theta)));
 int c=int(I.cols);
 int d=int(I.rows);

 rotate.nearestneighborinterpolation(I SOab-theta 0);
 cv::namedWindow(“最近邻插值旋转后图片“0);
  cv:: resizeWindow(“最近邻插值旋转后图片“ 320 240);
 cv::imshow(“最近邻插值旋转后图片“SO);
  


  rotate.nearestneighborinterpolation(SO SO1cdtheta0);
 cv::namedWindow(“最近邻插值旋转回原点后“0);
  cv:: resizeWindow(“最近邻插值旋转回原点后“ 320 240);
 cv::imshow(“最近邻插值旋转回原点后“SO1);
 
 rotate.zhifangtu(SO1  zjltu) ; 
  cv::namedWindow(“最近邻插值直方图“0);
  cv:: resizeWindow(“最近邻插值直方图“ 320 240);
 cv::imshow(“最近邻插值直方图“ zjltu);
 rotate.xinzaobi(SO1);


 rotate.nearestneighborinterpolation(I SO2ab-theta1);
 cv::namedWindow(“双线性插值旋转后图片“0);
 cv:: resizeWindow(“双线性插值旋转后图片“ 320 240);
 cv::imshow(“双线性插值旋转后图片“SO2);

 

  rotate.nearestneighborinterpolation(SO2 SO3cdtheta1);
 cv::namedWindow(“双线性插值旋转回原点后“0);
  cv:: resizeWindow(“双线性插值旋转回原点后“ 320 240);
 cv::imshow(“双线性插值旋转回原点后“SO3);

 rotate.zhifangtu(SO3  xxtu) ; 
  cv::namedWindow(“双线性插值直方图“0);
  cv:: resizeWindow(“双线性插值直方图“ 320 240);
 cv::imshow(“双线性插值直方图“ xxtu);
 rotate.xinzaobi(SO3);


 rotate.nearestneighborinterpolation(I SO4ab-theta2);
 cv::namedWindow(“三次样条插值旋转后图片“0);
  cv:: resizeWindow(“三次样条插值旋转后图片“ 320 240);
 cv::imshow(“三次样条插值旋转后图片“SO4);

 

  rotate.nearestneighborinterpolation(SO4 SO5cdtheta2);
 cv::namedWindow(“三次样条插值旋转回原点后“0);
  cv:: resizeWindow(“三次样条插值旋转回原点后“ 320 240);
  cv::imshow(“三次样条插值旋转回原点后“SO5);
 
  rotate.zhifangtu(SO5  sctu) ; 
  cv::namedWindow(“三次样条插值直方图“0);
  cv:: resizeWindow(“三次样条插值直方图“ 320 240);
 cv::imshow(“三次样条插值直方图“ sctu);
 rotate.xinzaobi(SO5);

  cv::waitKey(0);
 
 return 0;
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-03-31 09:58  孔令升程序\
     目录           0  2018-04-01 23:53  孔令升程序\kls\
     目录           0  2018-04-01 23:42  孔令升程序\kls\Debug\
     文件       70144  2018-04-01 23:42  孔令升程序\kls\Debug\kls.exe
     文件      570060  2018-04-01 23:42  孔令升程序\kls\Debug\kls.ilk
     文件     1207296  2018-04-01 23:42  孔令升程序\kls\Debug\kls.pdb
     目录           0  2018-04-01 23:53  孔令升程序\kls\ipch\
     目录           0  2018-04-01 23:53  孔令升程序\kls\ipch\kls-3ce08a21\
     文件    46071808  2018-04-01 23:53  孔令升程序\kls\ipch\kls-3ce08a21\kls-2defea76.ipch
     目录           0  2018-03-31 13:01  孔令升程序\kls\kls\
     文件       17858  2018-03-31 09:54  孔令升程序\kls\kls\Chapter2_1.pgm
     目录           0  2018-04-01 23:42  孔令升程序\kls\kls\Debug\
     文件       32306  2018-04-01 23:42  孔令升程序\kls\kls\Debug\CL.read.1.tlog
     文件        1018  2018-04-01 23:42  孔令升程序\kls\kls\Debug\CL.write.1.tlog
     文件      153160  2018-04-01 23:42  孔令升程序\kls\kls\Debug\Rotate.obj
     文件        1266  2018-04-01 23:42  孔令升程序\kls\kls\Debug\cl.command.1.tlog
     文件         406  2018-03-31 13:23  孔令升程序\kls\kls\Debug\kls.exe.embed.manifest
     文件         472  2018-03-31 13:23  孔令升程序\kls\kls\Debug\kls.exe.embed.manifest.res
     文件         381  2018-04-01 23:42  孔令升程序\kls\kls\Debug\kls.exe.intermediate.manifest
     文件          77  2018-04-01 23:42  孔令升程序\kls\kls\Debug\kls.lastbuildstate
     文件        3352  2018-04-01 23:42  孔令升程序\kls\kls\Debug\kls.log
     文件         713  2018-03-31 13:01  孔令升程序\kls\kls\Debug\kls.vcxprojResolveAssemblyReference.cache
     文件           0  2018-03-31 13:01  孔令升程序\kls\kls\Debug\kls.write.1.tlog
     文件         196  2018-03-31 13:02  孔令升程序\kls\kls\Debug\kls_manifest.rc
     文件           2  2018-04-01 23:42  孔令升程序\kls\kls\Debug\link-cvtres.read.1.tlog
     文件           2  2018-04-01 23:42  孔令升程序\kls\kls\Debug\link-cvtres.write.1.tlog
     文件           2  2018-04-01 23:42  孔令升程序\kls\kls\Debug\link.10264-cvtres.read.1.tlog
     文件           2  2018-04-01 23:42  孔令升程序\kls\kls\Debug\link.10264-cvtres.write.1.tlog
     文件           2  2018-04-01 23:42  孔令升程序\kls\kls\Debug\link.10264.read.1.tlog
     文件           2  2018-04-01 23:42  孔令升程序\kls\kls\Debug\link.10264.write.1.tlog
     文件           2  2018-04-01 23:42  孔令升程序\kls\kls\Debug\link.13300-cvtres.read.1.tlog
............此处省略56个文件信息

评论

共有 条评论