Guest User

Untitled

a guest
Jul 20th, 2018
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.70 KB | None | 0 0
  1. function grow()
  2. % rr and rc can be any number provided they are greater than one and whole
  3. % integers.
  4. rr = 4; % ratio to multiply the rows by, i.e. rr = 2 doubles the amount of rows the new picture will have
  5. rc = 4; % same as above but for columns
  6.  
  7. if( rr < 1 || rc < 1) % this program cannot yet downsize pictures!
  8. disp(' This program cannot downsize pictures, run function shrink() instead!');
  9. end
  10.  
  11.  
  12. nc = 235; %Image dimensions
  13. nr = 300; %Other image dimensions
  14.  
  15. F = imread('watarunfullsmall.jpg'); % reads image from the same folder this matlab .M file is located
  16. %H = imread('watarunfull.jpg');
  17. %image(F);
  18. %image(F);
  19.  
  20.  
  21.  
  22. X = zeros(rr*nr,rc*nc,3,'uint8'); % creates 3 dimensional array to replace the picture supplied earlier (columns,rows,rgb of type unsigned integer (8 bytes))
  23.  
  24. for i = 1:1:nr
  25. for j = 1:1:nc
  26.  
  27. X(i*rr - rr + 1 ,j * rc - rc + 1,1:3) = F(i,j,1:3); % Copies color codes
  28.  
  29. end
  30. end
  31.  
  32.  
  33. sir = splineInterpolationRows(X,nr,nc,rr,rc,1);
  34. sic = splineInterpolationColumns(sir,nr,nc,rr,rc,1);
  35.  
  36. for i = 2:rc
  37. sic = splineInterpolationColumns(sic,nr,nc,rr,rc,i);
  38. end
  39.  
  40.  
  41. image(sic);
  42.  
  43. %E = zeros(nr*rr,nc*rc,'uint8');
  44. %for i = 1:1:nr*rr
  45. % for j = 1:1:nc*rc
  46. % for color = 1:3
  47. % E(i,j,color) = abs(H(i,j,color) - sic(i,j,color)); % Copies color codes
  48.  
  49. % end
  50. % end
  51. %end
  52.  
  53. %image(sic);
  54. %imwrite(sic,'dogpixel Spline.jpg');
  55.  
  56. end
  57.  
  58.  
  59.  
  60. function sir = splineInterpolationRows(img,columnlength,rowlength,columnmultiple,rowmultiple,start)
  61. degree = 1;
  62. for y = start:columnmultiple:columnlength*columnmultiple
  63.  
  64. splinered = spline((1:rowmultiple*degree:rowlength*rowmultiple-rowmultiple*degree),...
  65. double(img(y,(1:rowmultiple*degree:rowlength*rowmultiple-rowmultiple*degree),1)));
  66.  
  67. splinegreen = spline((1:rowmultiple*degree:rowlength*rowmultiple-rowmultiple*degree),...
  68. double(img(y,(1:rowmultiple*degree:rowlength*rowmultiple-rowmultiple*degree),2)));
  69.  
  70. splineblue = spline((1:rowmultiple*degree:rowlength*rowmultiple-rowmultiple*degree),...
  71. double(img(y,(1:rowmultiple*degree:rowlength*rowmultiple-rowmultiple*degree),3)));
  72.  
  73. for z = 1:rowmultiple-1
  74. for i = 1+z:rowmultiple:rowlength*rowmultiple-rowmultiple*degree-1
  75.  
  76. img(y,i,1) = ppval(splinered, i);
  77. img(y,i,2) = ppval(splinegreen, i);
  78. img(y,i,3) = ppval(splineblue, i);
  79. end
  80. end
  81. end
  82. sir = img;
  83. end
  84.  
  85.  
  86.  
  87. function sic = splineInterpolationColumns(img,columnlength,rowlength,columnmultiple,rowmultiple,start)
  88. degree = 1;
  89. for x = start:rowmultiple:rowlength*rowmultiple
  90.  
  91. % xv = [1,1+rowmultiple,1+rowmultiple*2,1+rowmultiple*3];
  92. % yv = [img(y,xv(1),color),img(y,xv(2),color),img(y,xv(3),color),img(y,xv(4),color)];
  93. splinered = spline((1:columnmultiple*degree:columnlength*columnmultiple-columnmultiple*degree),double(img((1:columnmultiple*degree:columnlength*columnmultiple-columnmultiple*degree),x,1)));
  94. splinegreen = spline((1:columnmultiple*degree:columnlength*columnmultiple-columnmultiple*degree),double(img((1:columnmultiple*degree:columnlength*columnmultiple-columnmultiple*degree),x,2)));
  95. splineblue = spline((1:columnmultiple*degree:columnlength*columnmultiple-columnmultiple*degree),double(img((1:columnmultiple*degree:columnlength*columnmultiple-columnmultiple*degree),x,3)));
  96.  
  97.  
  98.  
  99. for z = 1:columnmultiple-1
  100.  
  101. for i = 1+z:columnmultiple:columnlength*columnmultiple-columnmultiple*degree-1
  102.  
  103. img(i,x,1) = ppval(splinered, i);
  104. img(i,x,2) = ppval(splinegreen, i);
  105. img(i,x,3) = ppval(splineblue, i);
  106.  
  107.  
  108. end
  109.  
  110. end
  111. end
  112.  
  113. sic = img;
  114.  
  115. end
Add Comment
Please, Sign In to add comment