smooth.c

来自「卡耐基SSD6全部选择题和练习题解决方法。」· C语言 代码 · 共 50 行

C
50
字号
#include <stdio.h>
#include <stdlib.h>
#include "defs.h"
#include "cache.h"




/* Here is an our naive implementation */
char smooth_descr[] = "SMOOTH: Naive Row-wise Traversal of src";


void smooth(int dim, pixel *src, pixel *dst) {
	int i, j;
	for(j=0; j<dim; j++) {		
		for(i=0; i<dim; i++) {
			if(j == 0 || j == dim-1)
			{
				COPY(&dst[PIXEL(i,j,dim)], &src[PIXEL(i,j,dim)]);
			}
			else{
				if(i==0 || i == dim-1)
				{
					COPY(&dst[PIXEL(i,j,dim)], &src[PIXEL(i,j,dim)]);
				}
				else
					SMOOTH(&dst[PIXEL(j,i,dim)],
							&src[PIXEL(j,i,dim)],
							&src[PIXEL(j-1,i,dim)],
							&src[PIXEL(j+1,i,dim)],
							&src[PIXEL(j,i+1,dim)],
							&src[PIXEL(j,i-1,dim)],
							&src[PIXEL(j-1,i-1,dim)],
							&src[PIXEL(j+1,i+1,dim)],
							&src[PIXEL(j-1,i+1,dim)],
							&src[PIXEL(j+1,i-1,dim)]);
			}
		}
	}
	return;
}



/* Add additional functions to test here */
void register_smooth_functions() {
	add_smooth_function(&smooth, smooth_descr);
}

⌨️ 快捷键说明

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