ソースを参照

diff en c basico

David 11 年 前
コミット
052cc6366b
1 ファイル変更16 行追加0 行削除
  1. 16 0
      filtros/diff_c.c

+ 16 - 0
filtros/diff_c.c

@@ -3,6 +3,7 @@
 #include <math.h>
 #include "../tp2.h"
 
+
 void diff_c (
 	unsigned char *src,
 	unsigned char *src_2,
@@ -17,4 +18,19 @@ void diff_c (
 	unsigned char (*src_2_matrix)[src_2_row_size] = (unsigned char (*)[src_2_row_size]) src_2;
 	unsigned char (*dst_matrix)[dst_row_size] = (unsigned char (*)[dst_row_size]) dst;
 
+	int i,j,val;
+	printf("%d %d \n", n,m);
+
+	for(i=0;i<n;i++){
+		for(j=0;j<m*4;j+=4){
+			val=((src_matrix[i][j+1]-src_2_matrix[i][j+1])+(src_matrix[i][j+2]-src_2_matrix[i][j+2])+(src_matrix[i][j+3]-src_2_matrix[i][j+3])) / 3;
+			if (val < 0)
+				val=-val;
+
+			dst_matrix[i][j+0]=0;
+			dst_matrix[i][j+1]=val;
+			dst_matrix[i][j+2]=val;
+			dst_matrix[i][j+3]=val;
+		}
+	}
 }