Skip to content

Instantly share code, notes, and snippets.

@kazuki-SS
Last active June 12, 2017 12:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kazuki-SS/9a72c5dd6aa8135f54ca672a98d1ee5d to your computer and use it in GitHub Desktop.
Save kazuki-SS/9a72c5dd6aa8135f54ca672a98d1ee5d to your computer and use it in GitHub Desktop.
prewitt
#include<math.h>
#include"Params.h"
void prewitt(unsigned char *InImage, unsigned char *OutImage, double amp)
{
int d0, d1, d2, d3, d4, d5, d6, d7, d8;
int i, j, k, max, dat;
int m[8];
double zz;
for (i = 1; i < IMG_HEIGHT-1; i++) {
for (j = 1; j < IMG_WIDTH - 1; j++) {
d0 = InImage[IMG_WIDTH*(i - 1) + (j - 1)];
d1 = InImage[IMG_WIDTH*(i - 1) + j];
d2 = InImage[IMG_WIDTH*(i - 1) + j + 1];
d3 = InImage[IMG_WIDTH*i + j - 1];
d4 = InImage[IMG_WIDTH*i + j];
d5 = InImage[IMG_WIDTH*i + j + 1];
d6 = InImage[IMG_WIDTH*(i + 1) + j - 1];
d7 = InImage[IMG_WIDTH*(i + 1) + j];
d8 = InImage[IMG_WIDTH*(i + 1) + j + 1];
m[0] = d0 + d1 + d2 + d3 - 2 * d4 + d5 - d6 - d7 - d8;
m[1] = d0 + d1 + d2 + d3 - 2 * d4 - d5 + d6 - d7 - d8;
m[2] = d0 + d1 - d2 + d3 - 2 * d4 - d5 + d6 + d7 - d8;
m[3] = d0 - d1 - d2 + d3 - 2 * d4 - d5 + d6 + d7 + d8;
m[4] = -d0 - d1 - d2 + d3 - 2 * d4 + d5 + d6 + d7 + d8;
m[5] = -d0 - d1 + d2 - d3 - 2 * d4 + d5 + d6 + d7 + d8;
m[6] = -d0 + d1 + d2 - d3 - 2 * d4 + d5 - d6 + d7 + d8;
m[7] = d0 + d1 + d2 - d3 - 2 * d4 + d5 - d6 - d7 + d8;
max = 0;
for (k = 0; k < 8; k++)if (max < m[k])max = m[k];
zz = amp*(double)(max);
dat = (int)(zz);
if (dat > 255)dat = 255;
OutImage[IMG_WIDTH*i + j] = (unsigned char)dat;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment