| 12345678910111213141516171819202122232425262728293031323334 |
- #include <stdlib.h>
- #include <math.h>
- #include "../tp2.h"
- unsigned int max(unsigned int a, unsigned int b, unsigned int c){
- if (a > b) {
- return a > c ? a : c;
- }else {
- return b > c ? b : c;
- }
- }
- void diff_c (unsigned char *src, unsigned char *src_2, unsigned char *dst, int m, int n, int src_row_size, int src_2_row_size, int dst_row_size) {
- unsigned char (*src_matrix)[src_row_size] = (unsigned char (*)[src_row_size]) src;
- 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;
- short val;
- for(i=0;i<n;i++){
- for(j=0;j<m*4;j+=4){
- val=max(abs(src_matrix[i][j+0]-src_2_matrix[i][j+0]),
- abs(src_matrix[i][j+1]-src_2_matrix[i][j+1]),
- abs(src_matrix[i][j+2]-src_2_matrix[i][j+2]));
- dst_matrix[i][j+0]=val;
- dst_matrix[i][j+1]=val;
- dst_matrix[i][j+2]=val;
- dst_matrix[i][j+3]=255;
- }
- }
- }
|