daily pastebin goal
86%
SHARE
TWEET

Untitled

a guest Feb 20th, 2019 61 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Mat Tools::rowWiseZooming(Mat inM,int k){
  2.   //inM.convertTo(inM, CV_32F, 1.0/255.0);
  3.   Mat dst=Mat(inM.rows,inM.cols+(inM.cols-1)*(k-1),CV_32F,int(0));;
  4.  
  5.   int s=0,l=0;
  6.   int op=0;
  7.   int toggleSort=0;
  8.   for(int i=0;i<inM.rows;i++){
  9.     for(int j=0;j<inM.cols-1;j++){
  10.       dst.at<int>(i,l)=inM.at<int>(i,j);
  11.  
  12.       int Min=minInt(inM.at<int>(i,j),inM.at<int>(i,j+1));
  13.       int Max=maxInt(inM.at<int>(i,j),inM.at<int>(i,j+1));
  14.       op=(int)(Max-Min)/k;
  15.  
  16.       if(toggleSort==0){
  17.         dst.at<int>(i,l+1)=Min+op;
  18.         for(int t=1;t<k-1;t++){
  19.           dst.at<int>(i,l+t+1)=dst.at<int>(i,l+t)+op;
  20.         }
  21.         toggleSort=1;
  22.       }else{
  23.         dst.at<int>(i,l+1)=Max-op;
  24.         for(int t=1;t<k-1;t++){
  25.           dst.at<int>(i,l+t+1)=dst.at<int>(i,l+t)-op;
  26.         }
  27.         toggleSort=0;
  28.       }
  29.       dst.at<int>(i,l+k)=inM.at<int>(i,j+1);l+=k;
  30.  
  31.     }l=0;toggleSort=1;
  32.   }
  33.  
  34. return dst;
  35. }
  36.  
  37. Mat Tools::colWiseZooming(Mat inM,int k){
  38.   Mat dst=Mat(inM.rows+(inM.rows-1)*(k-1),inM.cols,CV_32F,int(0));
  39.  
  40.   int s=0,l=0;
  41.   int op=0;
  42.   int toggleSort=0;
  43.   for(int j=0;j<inM.cols;j++){
  44.     for(int i=0;i<inM.rows-1;i++){
  45.       dst.at<int>(s,j)=inM.at<int>(i,j);
  46.       int Min=minInt(inM.at<int>(i,j),inM.at<int>(i+1,j));
  47.       int Max=maxInt(inM.at<int>(i,j),inM.at<int>(i+1,j));
  48.       op=(int)(Max-Min)/k;
  49.  
  50.  
  51.           dst.at<int>(s+1,j)=Min+op;
  52.           for(int t=1;t<k-1;t++){
  53.             dst.at<int>(s+t+1,j)=dst.at<int>(s+t,j)+op;
  54.           }
  55.  
  56.  
  57.  
  58.       dst.at<int>(s+k,j)=inM.at<int>(i+1,j);s+=k;
  59.  
  60.     }s=0;
  61.   }
  62.   return dst;
  63. }
  64.  
  65. Mat Tools::zoomIn(Mat img,int k){
  66.     Mat imgC;
  67.     img.copyTo(imgC);
  68.     img.convertTo(imgC, CV_32F, 1.0/255.0);
  69.         Mat inM=rowWiseZooming(imgC,k);
  70.  
  71.  
  72.         Mat dst=colWiseZooming(inM,k);
  73.  
  74.     dst.convertTo(dst, CV_8UC1, 255.0/1.0);
  75.     return dst;
  76. }
  77.  
  78.  
  79. Mat Tools::colWiseZoomingOut(Mat inM,int k){
  80.   Mat dst=Mat((int)((inM.rows-1)/k)+1,inM.cols,CV_32F,int(0));
  81.  
  82.   for(int i=0,s=0;i<inM.rows;i+=k,s++){
  83.     for(int j=0;j<inM.cols;j++){
  84.       dst.at<int>(s,j)=inM.at<int>(i,j);
  85.     }
  86.   }
  87.   return dst;
  88. }
  89.  
  90. Mat Tools::rowWiseZoomingOut(Mat inM,int k){
  91.   Mat dst=Mat(inM.rows,(int)((inM.cols-1)/k)+1,CV_32F,int(0));
  92.  
  93.   for(int i=0;i<inM.rows;i++){
  94.     for(int j=0,l=0;j<inM.cols;j+=k,l++){
  95.       dst.at<int>(i,l)=inM.at<int>(i,j);
  96.     }
  97.   }
  98.   return dst;
  99. }
  100.  
  101. Mat Tools::zoomOut(Mat img,int k){
  102.     Mat imgC;
  103.     img.copyTo(imgC);
  104.     img.convertTo(imgC, CV_32F, 1.0/255.0);
  105.         Mat inM=colWiseZoomingOut(imgC,k);
  106.  
  107.         Mat dst=rowWiseZoomingOut(inM,k);
  108.  
  109.     dst.convertTo(dst, CV_8UC1, 255.0/1.0);
  110.     return dst;
  111. }
  112.  
  113. Mat Tools::zoomInFactor(Mat img, int k, int factor){
  114.     if(factor==0)return img;
  115.     if(factor<0)return zoomOutFactor(img,k,factor);
  116.     Mat dst=zoomIn(img,k);
  117.     for(int i=1;i<factor;i++){
  118.         dst=zoomIn(dst,k);
  119.     }
  120.     return dst;
  121. }
  122.  
  123. Mat Tools::zoomOutFactor(Mat img, int k, int factor){
  124.     if(factor==0)return img;
  125.     if(factor>0)return zoomInFactor(img,k,factor);
  126.     Mat dst=zoomOut(img,k);
  127.     for(int i=1;i<abs(factor);i++){
  128.         dst=zoomOut(dst,k);
  129.     }
  130.     return dst;
  131. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top