Advertisement
KYRALEKOS

IMAGE PROCESSING LAB3 3/3/20

Mar 3rd, 2020
380
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.74 KB | None | 0 0
  1. /*
  2.   ------------------------------------------------------------
  3.   ANSI C IMAGE PROCESSING TEMPLATE USING DIP LIBRARY
  4.   by D.K. Iakovidis
  5.   ------------------------------------------------------------
  6. */
  7.  
  8. #include <stdio.h>
  9. #include <stdlib.h>
  10. #include <math.h>
  11. #include "dip.h"           
  12.  
  13. unsigned char **processImage(unsigned char **inputImage, int rows, int columns);
  14.  
  15. int main(void)
  16. {
  17.      unsigned char *inputFilename = "image268x324.raw",
  18.                    *outputFilename = "image268x324out.raw";
  19.      int rows = 324,
  20.          columns = 268;
  21.          
  22.      unsigned char **inputImage, **outputImage;
  23.  
  24.      inputImage = allocateImage(rows, columns);    
  25.      
  26.      inputImage = loadImage(inputFilename, rows, columns);
  27.      outputImage = processImage(inputImage, rows, columns);
  28.      saveImage(outputFilename, outputImage, rows, columns);    
  29.      deallocateImage(inputImage, rows);
  30.      deallocateImage(outputImage, rows);      
  31.  
  32.      return 0;
  33. }
  34.  
  35.  
  36. unsigned char **processImage(unsigned char **inputImage, int rows, int columns)
  37. {   double kernel[rows][columns];
  38.     double max=0.0,min=255.0;
  39.      int i,j;
  40.      unsigned char **outputImage = allocateImage(rows, columns);
  41.      
  42.      for (i = 0; i < rows; i++)
  43.      {
  44.          for (j = 0; j < columns; j++)
  45.          {
  46.             kernel[i][j] = rand()%256 +inputImage[i][j];
  47.             if(max<kernel[i][j])max=kernel[i][j];
  48.             if(min>kernel[i][j])min=kernel[i][j];
  49.          }
  50.      }
  51.      for (i = 0; i < rows; i++)
  52.      {
  53.          for (j = 0; j < columns; j++)
  54.          {
  55.             kernel[i][j] =  (kernel[i][j]-min)/(max-min);
  56.             outputImage[i][j]=(unsigned char)(255*kernel[i][j]) ;
  57.            
  58.          }
  59.      }
  60.      
  61.      return outputImage;
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement