⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 grad1.c

📁 是个很好的文献
💻 C
字号:
/* Gradient edge detector - no templates *//* G1 */#define MAX#include "lib.h"#include <math.h>void grad1 (IMAGE x);void grad1 (IMAGE x){	int i,j,k;	double z, dx, dy;	int pmax=0, pmin=255, thresh = 128;	for (i=x->info->nr-1; i>= 1; i--)	  for (j=x->info->nc-1; j>=1; j--)	  {	    dx = (x->data[i][j]-x->data[i-1][j]);	    dy = (x->data[i][j]-x->data[i][j-1]);	    z = sqrt(dx*dx + dy*dy);	    if (z > 255.0) z = 255.0;	     else if (z < 0.0) z = 0.0;	    x->data[i][j] = (unsigned char)z;	    if (pmax < (unsigned char)z) pmax = (unsigned char)z;	    if (pmin > (unsigned char)z) pmin = (unsigned char)z;	  }	thresh = (pmax-pmin)/2;	for (i=0; i<x->info->nr; i++)	{	  x->data[i][0] = 0;	  x->data[i][x->info->nc-1] = 0;	}	for (j=0; j<x->info->nc; j++)	{	  x->data[0][j] = 0;	  x->data[x->info->nr-1][j] = 0;	}/*	Threshold	*/	for (i=0; i<x->info->nr; i++)	  for (j=0; j<x->info->nc; j++)	    if (x->data[i][j] > thresh) x->data[i][j] = 0;	     else x->data[i][j] = 255;}main (int argc, char *argv[]){	IMAGE x=0;	if (argc < 2)	{	  printf ("Usage: grad1 <image> \n");	  exit (1);	}	x = Input_PBM (argv[1]);	if (x == 0)	{	  printf ("No input image ('%s')\n", argv[1]);	  exit (2);	}	grad1 (x);	Output_PBM (x, "grad1.pgm");	printf ("Output is in file 'grad1.pgm'\n");}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -