/* * The Npic library * * Copyright (C) 2003 Edouard Thiel * * This library is free software under the terms of the * GNU Lesser General Public License (LGPL) version 2.1. */ /* DO NOT EDIT !!! Generated by npic-templa from "calc_diff.ct" */ /* * calc_diff.c - 13/11/2008 * * Comparison of pixel values */ #include /*--------------------- P U B L I C - I N T E R F A C E ----------------------*/ /* * Compare images values. * * Return <0 if images are not ok, or do not have same type and size, * 0 if same pixels, >0 the number of pixels which differ. In the latter, * at most n differences are printed. Verbose. */ long NpicCompare (Npic_image *np1, Npic_image *np2, long n) { long i = 0; if (NpicImageIsOK (np1, __func__) != NPIC_SUCCESS) return NPIC_ERR_NOT_OK; if (NpicImageIsOK (np2, __func__) != NPIC_SUCCESS) return NPIC_ERR_NOT_OK; if (NpicSameImage (np1, np2, NPIC_DIM) != NPIC_SUCCESS) return NpicError (__func__, NPIC_ERROR, ": not same dimension"); if (NpicSameImage (np1, np2, NPIC_TYPE) != NPIC_SUCCESS) return NpicError (__func__, NPIC_ERROR, ": not same type"); if (NpicSameImage (np1, np2, NPIC_SIZE) != NPIC_SUCCESS) return NpicError (__func__, NPIC_ERROR, ": not same size"); switch (np1->type) { case NPIC_IMAGE_2C : { Npic_image_2c *p1 = NpicCastImage (np1), *p2 = NpicCastImage (np2); int y, x; for (y = 0; y < p1->ymax; y++) for (x = 0; x < p1->xmax; x++) { if (p1->pix[y][x] != p2->pix[y][x]) { i++; if (i <= n) { printf ("%d %d : ", y, x); printf ("%d %d\n", p1->pix[y][x], p2->pix[y][x]); } } } return i; } case NPIC_IMAGE_2L : { Npic_image_2l *p1 = NpicCastImage (np1), *p2 = NpicCastImage (np2); int y, x; for (y = 0; y < p1->ymax; y++) for (x = 0; x < p1->xmax; x++) { if (p1->pix[y][x] != p2->pix[y][x]) { i++; if (i <= n) { printf ("%d %d : ", y, x); printf ("%" NPIC_PL " %" NPIC_PL "\n", p1->pix[y][x], p2->pix[y][x]); } } } return i; } case NPIC_IMAGE_2D : { Npic_image_2d *p1 = NpicCastImage (np1), *p2 = NpicCastImage (np2); int y, x; for (y = 0; y < p1->ymax; y++) for (x = 0; x < p1->xmax; x++) { if (p1->pix[y][x] != p2->pix[y][x]) { i++; if (i <= n) { printf ("%d %d : ", y, x); printf ("%lf %lf\n", p1->pix[y][x], p2->pix[y][x]); } } } return i; } case NPIC_IMAGE_3C : { Npic_image_3c *p1 = NpicCastImage (np1), *p2 = NpicCastImage (np2); int z, y, x; for (z = 0; z < p1->zmax; z++) for (y = 0; y < p1->ymax; y++) for (x = 0; x < p1->xmax; x++) { if (p1->pix[z][y][x] != p2->pix[z][y][x]) { i++; if (i <= n) { printf ("%d %d %d : ", z, y, x); printf ("%d %d\n", p1->pix[z][y][x], p2->pix[z][y][x]); } } } return i; } case NPIC_IMAGE_3L : { Npic_image_3l *p1 = NpicCastImage (np1), *p2 = NpicCastImage (np2); int z, y, x; for (z = 0; z < p1->zmax; z++) for (y = 0; y < p1->ymax; y++) for (x = 0; x < p1->xmax; x++) { if (p1->pix[z][y][x] != p2->pix[z][y][x]) { i++; if (i <= n) { printf ("%d %d %d : ", z, y, x); printf ("%" NPIC_PL " %" NPIC_PL "\n", p1->pix[z][y][x], p2->pix[z][y][x]); } } } return i; } case NPIC_IMAGE_3D : { Npic_image_3d *p1 = NpicCastImage (np1), *p2 = NpicCastImage (np2); int z, y, x; for (z = 0; z < p1->zmax; z++) for (y = 0; y < p1->ymax; y++) for (x = 0; x < p1->xmax; x++) { if (p1->pix[z][y][x] != p2->pix[z][y][x]) { i++; if (i <= n) { printf ("%d %d %d : ", z, y, x); printf ("%lf %lf\n", p1->pix[z][y][x], p2->pix[z][y][x]); } } } return i; } case NPIC_IMAGE_4C : { Npic_image_4c *p1 = NpicCastImage (np1), *p2 = NpicCastImage (np2); int t, z, y, x; for (t = 0; t < p1->tmax; t++) for (z = 0; z < p1->zmax; z++) for (y = 0; y < p1->ymax; y++) for (x = 0; x < p1->xmax; x++) { if (p1->pix[t][z][y][x] != p2->pix[t][z][y][x]) { i++; if (i <= n) { printf ("%d %d %d %d : ", t, z, y, x); printf ("%d %d\n", p1->pix[t][z][y][x], p2->pix[t][z][y][x]); } } } return i; } case NPIC_IMAGE_4L : { Npic_image_4l *p1 = NpicCastImage (np1), *p2 = NpicCastImage (np2); int t, z, y, x; for (t = 0; t < p1->tmax; t++) for (z = 0; z < p1->zmax; z++) for (y = 0; y < p1->ymax; y++) for (x = 0; x < p1->xmax; x++) { if (p1->pix[t][z][y][x] != p2->pix[t][z][y][x]) { i++; if (i <= n) { printf ("%d %d %d %d : ", t, z, y, x); printf ("%" NPIC_PL " %" NPIC_PL "\n", p1->pix[t][z][y][x], p2->pix[t][z][y][x]); } } } return i; } case NPIC_IMAGE_4D : { Npic_image_4d *p1 = NpicCastImage (np1), *p2 = NpicCastImage (np2); int t, z, y, x; for (t = 0; t < p1->tmax; t++) for (z = 0; z < p1->zmax; z++) for (y = 0; y < p1->ymax; y++) for (x = 0; x < p1->xmax; x++) { if (p1->pix[t][z][y][x] != p2->pix[t][z][y][x]) { i++; if (i <= n) { printf ("%d %d %d %d : ", t, z, y, x); printf ("%lf %lf\n", p1->pix[t][z][y][x], p2->pix[t][z][y][x]); } } } return i; } case NPIC_IMAGE_5C : { Npic_image_5c *p1 = NpicCastImage (np1), *p2 = NpicCastImage (np2); int s, t, z, y, x; for (s = 0; s < p1->smax; s++) for (t = 0; t < p1->tmax; t++) for (z = 0; z < p1->zmax; z++) for (y = 0; y < p1->ymax; y++) for (x = 0; x < p1->xmax; x++) { if (p1->pix[s][t][z][y][x] != p2->pix[s][t][z][y][x]) { i++; if (i <= n) { printf ("%d %d %d %d %d : ", s, t, z, y, x); printf ("%d %d\n", p1->pix[s][t][z][y][x], p2->pix[s][t][z][y][x]); } } } return i; } case NPIC_IMAGE_5L : { Npic_image_5l *p1 = NpicCastImage (np1), *p2 = NpicCastImage (np2); int s, t, z, y, x; for (s = 0; s < p1->smax; s++) for (t = 0; t < p1->tmax; t++) for (z = 0; z < p1->zmax; z++) for (y = 0; y < p1->ymax; y++) for (x = 0; x < p1->xmax; x++) { if (p1->pix[s][t][z][y][x] != p2->pix[s][t][z][y][x]) { i++; if (i <= n) { printf ("%d %d %d %d %d : ", s, t, z, y, x); printf ("%" NPIC_PL " %" NPIC_PL "\n", p1->pix[s][t][z][y][x], p2->pix[s][t][z][y][x]); } } } return i; } case NPIC_IMAGE_5D : { Npic_image_5d *p1 = NpicCastImage (np1), *p2 = NpicCastImage (np2); int s, t, z, y, x; for (s = 0; s < p1->smax; s++) for (t = 0; t < p1->tmax; t++) for (z = 0; z < p1->zmax; z++) for (y = 0; y < p1->ymax; y++) for (x = 0; x < p1->xmax; x++) { if (p1->pix[s][t][z][y][x] != p2->pix[s][t][z][y][x]) { i++; if (i <= n) { printf ("%d %d %d %d %d : ", s, t, z, y, x); printf ("%lf %lf\n", p1->pix[s][t][z][y][x], p2->pix[s][t][z][y][x]); } } } return i; } case NPIC_IMAGE_6C : { Npic_image_6c *p1 = NpicCastImage (np1), *p2 = NpicCastImage (np2); int r, s, t, z, y, x; for (r = 0; r < p1->rmax; r++) for (s = 0; s < p1->smax; s++) for (t = 0; t < p1->tmax; t++) for (z = 0; z < p1->zmax; z++) for (y = 0; y < p1->ymax; y++) for (x = 0; x < p1->xmax; x++) { if (p1->pix[r][s][t][z][y][x] != p2->pix[r][s][t][z][y][x]) { i++; if (i <= n) { printf ("%d %d %d %d %d %d : ", r, s, t, z, y, x); printf ("%d %d\n", p1->pix[r][s][t][z][y][x], p2->pix[r][s][t][z][y][x]); } } } return i; } case NPIC_IMAGE_6L : { Npic_image_6l *p1 = NpicCastImage (np1), *p2 = NpicCastImage (np2); int r, s, t, z, y, x; for (r = 0; r < p1->rmax; r++) for (s = 0; s < p1->smax; s++) for (t = 0; t < p1->tmax; t++) for (z = 0; z < p1->zmax; z++) for (y = 0; y < p1->ymax; y++) for (x = 0; x < p1->xmax; x++) { if (p1->pix[r][s][t][z][y][x] != p2->pix[r][s][t][z][y][x]) { i++; if (i <= n) { printf ("%d %d %d %d %d %d : ", r, s, t, z, y, x); printf ("%" NPIC_PL " %" NPIC_PL "\n", p1->pix[r][s][t][z][y][x], p2->pix[r][s][t][z][y][x]); } } } return i; } case NPIC_IMAGE_6D : { Npic_image_6d *p1 = NpicCastImage (np1), *p2 = NpicCastImage (np2); int r, s, t, z, y, x; for (r = 0; r < p1->rmax; r++) for (s = 0; s < p1->smax; s++) for (t = 0; t < p1->tmax; t++) for (z = 0; z < p1->zmax; z++) for (y = 0; y < p1->ymax; y++) for (x = 0; x < p1->xmax; x++) { if (p1->pix[r][s][t][z][y][x] != p2->pix[r][s][t][z][y][x]) { i++; if (i <= n) { printf ("%d %d %d %d %d %d : ", r, s, t, z, y, x); printf ("%lf %lf\n", p1->pix[r][s][t][z][y][x], p2->pix[r][s][t][z][y][x]); } } } return i; } case NPIC_IMAGE_2Q : { Npic_image_2q *p1 = NpicCastImage (np1), *p2 = NpicCastImage (np2); int y, x; for (y = 0; y < p1->ymax; y++) for (x = 0; x < p1->xmax; x++) { if (p1->pix[y][x].a != p2->pix[y][x].a || p1->pix[y][x].b != p2->pix[y][x].b || p1->pix[y][x].c != p2->pix[y][x].c || p1->pix[y][x].d != p2->pix[y][x].d ) { i++; if (i <= n) { printf ("%d %d : ", y, x); printf ("%d %d %d %d %d %d %d %d\n", p1->pix[y][x].a, p1->pix[y][x].b, p1->pix[y][x].c, p1->pix[y][x].d, p2->pix[y][x].a, p2->pix[y][x].b, p2->pix[y][x].c, p2->pix[y][x].d ); } } } return i; } case NPIC_IMAGE_3Q : { Npic_image_3q *p1 = NpicCastImage (np1), *p2 = NpicCastImage (np2); int z, y, x; for (z = 0; z < p1->zmax; z++) for (y = 0; y < p1->ymax; y++) for (x = 0; x < p1->xmax; x++) { if (p1->pix[z][y][x].a != p2->pix[z][y][x].a || p1->pix[z][y][x].b != p2->pix[z][y][x].b || p1->pix[z][y][x].c != p2->pix[z][y][x].c || p1->pix[z][y][x].d != p2->pix[z][y][x].d ) { i++; if (i <= n) { printf ("%d %d %d : ", z, y, x); printf ("%d %d %d %d %d %d %d %d\n", p1->pix[z][y][x].a, p1->pix[z][y][x].b, p1->pix[z][y][x].c, p1->pix[z][y][x].d, p2->pix[z][y][x].a, p2->pix[z][y][x].b, p2->pix[z][y][x].c, p2->pix[z][y][x].d ); } } } return i; } case NPIC_IMAGE_4Q : { Npic_image_4q *p1 = NpicCastImage (np1), *p2 = NpicCastImage (np2); int t, z, y, x; for (t = 0; t < p1->tmax; t++) for (z = 0; z < p1->zmax; z++) for (y = 0; y < p1->ymax; y++) for (x = 0; x < p1->xmax; x++) { if (p1->pix[t][z][y][x].a != p2->pix[t][z][y][x].a || p1->pix[t][z][y][x].b != p2->pix[t][z][y][x].b || p1->pix[t][z][y][x].c != p2->pix[t][z][y][x].c || p1->pix[t][z][y][x].d != p2->pix[t][z][y][x].d ) { i++; if (i <= n) { printf ("%d %d %d %d : ", t, z, y, x); printf ("%d %d %d %d %d %d %d %d\n", p1->pix[t][z][y][x].a, p1->pix[t][z][y][x].b, p1->pix[t][z][y][x].c, p1->pix[t][z][y][x].d, p2->pix[t][z][y][x].a, p2->pix[t][z][y][x].b, p2->pix[t][z][y][x].c, p2->pix[t][z][y][x].d ); } } } return i; } case NPIC_IMAGE_5Q : { Npic_image_5q *p1 = NpicCastImage (np1), *p2 = NpicCastImage (np2); int s, t, z, y, x; for (s = 0; s < p1->smax; s++) for (t = 0; t < p1->tmax; t++) for (z = 0; z < p1->zmax; z++) for (y = 0; y < p1->ymax; y++) for (x = 0; x < p1->xmax; x++) { if (p1->pix[s][t][z][y][x].a != p2->pix[s][t][z][y][x].a || p1->pix[s][t][z][y][x].b != p2->pix[s][t][z][y][x].b || p1->pix[s][t][z][y][x].c != p2->pix[s][t][z][y][x].c || p1->pix[s][t][z][y][x].d != p2->pix[s][t][z][y][x].d ) { i++; if (i <= n) { printf ("%d %d %d %d %d : ", s, t, z, y, x); printf ("%d %d %d %d %d %d %d %d\n", p1->pix[s][t][z][y][x].a, p1->pix[s][t][z][y][x].b, p1->pix[s][t][z][y][x].c, p1->pix[s][t][z][y][x].d, p2->pix[s][t][z][y][x].a, p2->pix[s][t][z][y][x].b, p2->pix[s][t][z][y][x].c, p2->pix[s][t][z][y][x].d ); } } } return i; } case NPIC_IMAGE_6Q : { Npic_image_6q *p1 = NpicCastImage (np1), *p2 = NpicCastImage (np2); int r, s, t, z, y, x; for (r = 0; r < p1->rmax; r++) for (s = 0; s < p1->smax; s++) for (t = 0; t < p1->tmax; t++) for (z = 0; z < p1->zmax; z++) for (y = 0; y < p1->ymax; y++) for (x = 0; x < p1->xmax; x++) { if (p1->pix[r][s][t][z][y][x].a != p2->pix[r][s][t][z][y][x].a || p1->pix[r][s][t][z][y][x].b != p2->pix[r][s][t][z][y][x].b || p1->pix[r][s][t][z][y][x].c != p2->pix[r][s][t][z][y][x].c || p1->pix[r][s][t][z][y][x].d != p2->pix[r][s][t][z][y][x].d ) { i++; if (i <= n) { printf ("%d %d %d %d %d %d : ", r, s, t, z, y, x); printf ("%d %d %d %d %d %d %d %d\n", p1->pix[r][s][t][z][y][x].a, p1->pix[r][s][t][z][y][x].b, p1->pix[r][s][t][z][y][x].c, p1->pix[r][s][t][z][y][x].d, p2->pix[r][s][t][z][y][x].a, p2->pix[r][s][t][z][y][x].b, p2->pix[r][s][t][z][y][x].c, p2->pix[r][s][t][z][y][x].d ); } } } return i; } default : return NpicError (__func__, NPIC_ERR_UNEX_NPIC, ""); } } /*----------------------------------------------------------------------------*/ /* * Compare images binary values (pixels == 0 or != 0). * * Return <0 if images are not ok, or do not have same type and size, * 0 if same pixels, >0 the number of pixels which differ. In the latter, * at most n differences are printed. Verbose. */ long NpicCompareBin (Npic_image *np1, Npic_image *np2, long n) { long i = 0; if (NpicImageIsOK (np1, __func__) != NPIC_SUCCESS) return NPIC_ERR_NOT_OK; if (NpicImageIsOK (np2, __func__) != NPIC_SUCCESS) return NPIC_ERR_NOT_OK; if (NpicSameImage (np1, np2, NPIC_DIM) != NPIC_SUCCESS) return NpicError (__func__, NPIC_ERROR, ": not same dimension"); if (NpicSameImage (np1, np2, NPIC_TYPE) != NPIC_SUCCESS) return NpicError (__func__, NPIC_ERROR, ": not same type"); if (NpicSameImage (np1, np2, NPIC_SIZE) != NPIC_SUCCESS) return NpicError (__func__, NPIC_ERROR, ": not same size"); switch (np1->type) { case NPIC_IMAGE_2C : { Npic_image_2c *p1 = NpicCastImage (np1), *p2 = NpicCastImage (np2); int y, x; for (y = 0; y < p1->ymax; y++) for (x = 0; x < p1->xmax; x++) { if ( (p1->pix[y][x] == 0) != (p2->pix[y][x] == 0) ) { i++; if (i <= n) { printf ("%d %d : ", y, x); printf ("%d %d\n", p1->pix[y][x], p2->pix[y][x]); } } } return i; } case NPIC_IMAGE_2L : { Npic_image_2l *p1 = NpicCastImage (np1), *p2 = NpicCastImage (np2); int y, x; for (y = 0; y < p1->ymax; y++) for (x = 0; x < p1->xmax; x++) { if ( (p1->pix[y][x] == 0) != (p2->pix[y][x] == 0) ) { i++; if (i <= n) { printf ("%d %d : ", y, x); printf ("%" NPIC_PL " %" NPIC_PL "\n", p1->pix[y][x], p2->pix[y][x]); } } } return i; } case NPIC_IMAGE_2D : { Npic_image_2d *p1 = NpicCastImage (np1), *p2 = NpicCastImage (np2); int y, x; for (y = 0; y < p1->ymax; y++) for (x = 0; x < p1->xmax; x++) { if ( (p1->pix[y][x] == 0) != (p2->pix[y][x] == 0) ) { i++; if (i <= n) { printf ("%d %d : ", y, x); printf ("%lf %lf\n", p1->pix[y][x], p2->pix[y][x]); } } } return i; } case NPIC_IMAGE_3C : { Npic_image_3c *p1 = NpicCastImage (np1), *p2 = NpicCastImage (np2); int z, y, x; for (z = 0; z < p1->zmax; z++) for (y = 0; y < p1->ymax; y++) for (x = 0; x < p1->xmax; x++) { if ( (p1->pix[z][y][x] == 0) != (p2->pix[z][y][x] == 0) ) { i++; if (i <= n) { printf ("%d %d %d : ", z, y, x); printf ("%d %d\n", p1->pix[z][y][x], p2->pix[z][y][x]); } } } return i; } case NPIC_IMAGE_3L : { Npic_image_3l *p1 = NpicCastImage (np1), *p2 = NpicCastImage (np2); int z, y, x; for (z = 0; z < p1->zmax; z++) for (y = 0; y < p1->ymax; y++) for (x = 0; x < p1->xmax; x++) { if ( (p1->pix[z][y][x] == 0) != (p2->pix[z][y][x] == 0) ) { i++; if (i <= n) { printf ("%d %d %d : ", z, y, x); printf ("%" NPIC_PL " %" NPIC_PL "\n", p1->pix[z][y][x], p2->pix[z][y][x]); } } } return i; } case NPIC_IMAGE_3D : { Npic_image_3d *p1 = NpicCastImage (np1), *p2 = NpicCastImage (np2); int z, y, x; for (z = 0; z < p1->zmax; z++) for (y = 0; y < p1->ymax; y++) for (x = 0; x < p1->xmax; x++) { if ( (p1->pix[z][y][x] == 0) != (p2->pix[z][y][x] == 0) ) { i++; if (i <= n) { printf ("%d %d %d : ", z, y, x); printf ("%lf %lf\n", p1->pix[z][y][x], p2->pix[z][y][x]); } } } return i; } case NPIC_IMAGE_4C : { Npic_image_4c *p1 = NpicCastImage (np1), *p2 = NpicCastImage (np2); int t, z, y, x; for (t = 0; t < p1->tmax; t++) for (z = 0; z < p1->zmax; z++) for (y = 0; y < p1->ymax; y++) for (x = 0; x < p1->xmax; x++) { if ( (p1->pix[t][z][y][x] == 0) != (p2->pix[t][z][y][x] == 0) ) { i++; if (i <= n) { printf ("%d %d %d %d : ", t, z, y, x); printf ("%d %d\n", p1->pix[t][z][y][x], p2->pix[t][z][y][x]); } } } return i; } case NPIC_IMAGE_4L : { Npic_image_4l *p1 = NpicCastImage (np1), *p2 = NpicCastImage (np2); int t, z, y, x; for (t = 0; t < p1->tmax; t++) for (z = 0; z < p1->zmax; z++) for (y = 0; y < p1->ymax; y++) for (x = 0; x < p1->xmax; x++) { if ( (p1->pix[t][z][y][x] == 0) != (p2->pix[t][z][y][x] == 0) ) { i++; if (i <= n) { printf ("%d %d %d %d : ", t, z, y, x); printf ("%" NPIC_PL " %" NPIC_PL "\n", p1->pix[t][z][y][x], p2->pix[t][z][y][x]); } } } return i; } case NPIC_IMAGE_4D : { Npic_image_4d *p1 = NpicCastImage (np1), *p2 = NpicCastImage (np2); int t, z, y, x; for (t = 0; t < p1->tmax; t++) for (z = 0; z < p1->zmax; z++) for (y = 0; y < p1->ymax; y++) for (x = 0; x < p1->xmax; x++) { if ( (p1->pix[t][z][y][x] == 0) != (p2->pix[t][z][y][x] == 0) ) { i++; if (i <= n) { printf ("%d %d %d %d : ", t, z, y, x); printf ("%lf %lf\n", p1->pix[t][z][y][x], p2->pix[t][z][y][x]); } } } return i; } case NPIC_IMAGE_5C : { Npic_image_5c *p1 = NpicCastImage (np1), *p2 = NpicCastImage (np2); int s, t, z, y, x; for (s = 0; s < p1->smax; s++) for (t = 0; t < p1->tmax; t++) for (z = 0; z < p1->zmax; z++) for (y = 0; y < p1->ymax; y++) for (x = 0; x < p1->xmax; x++) { if ( (p1->pix[s][t][z][y][x] == 0) != (p2->pix[s][t][z][y][x] == 0) ) { i++; if (i <= n) { printf ("%d %d %d %d %d : ", s, t, z, y, x); printf ("%d %d\n", p1->pix[s][t][z][y][x], p2->pix[s][t][z][y][x]); } } } return i; } case NPIC_IMAGE_5L : { Npic_image_5l *p1 = NpicCastImage (np1), *p2 = NpicCastImage (np2); int s, t, z, y, x; for (s = 0; s < p1->smax; s++) for (t = 0; t < p1->tmax; t++) for (z = 0; z < p1->zmax; z++) for (y = 0; y < p1->ymax; y++) for (x = 0; x < p1->xmax; x++) { if ( (p1->pix[s][t][z][y][x] == 0) != (p2->pix[s][t][z][y][x] == 0) ) { i++; if (i <= n) { printf ("%d %d %d %d %d : ", s, t, z, y, x); printf ("%" NPIC_PL " %" NPIC_PL "\n", p1->pix[s][t][z][y][x], p2->pix[s][t][z][y][x]); } } } return i; } case NPIC_IMAGE_5D : { Npic_image_5d *p1 = NpicCastImage (np1), *p2 = NpicCastImage (np2); int s, t, z, y, x; for (s = 0; s < p1->smax; s++) for (t = 0; t < p1->tmax; t++) for (z = 0; z < p1->zmax; z++) for (y = 0; y < p1->ymax; y++) for (x = 0; x < p1->xmax; x++) { if ( (p1->pix[s][t][z][y][x] == 0) != (p2->pix[s][t][z][y][x] == 0) ) { i++; if (i <= n) { printf ("%d %d %d %d %d : ", s, t, z, y, x); printf ("%lf %lf\n", p1->pix[s][t][z][y][x], p2->pix[s][t][z][y][x]); } } } return i; } case NPIC_IMAGE_6C : { Npic_image_6c *p1 = NpicCastImage (np1), *p2 = NpicCastImage (np2); int r, s, t, z, y, x; for (r = 0; r < p1->rmax; r++) for (s = 0; s < p1->smax; s++) for (t = 0; t < p1->tmax; t++) for (z = 0; z < p1->zmax; z++) for (y = 0; y < p1->ymax; y++) for (x = 0; x < p1->xmax; x++) { if ( (p1->pix[r][s][t][z][y][x] == 0) != (p2->pix[r][s][t][z][y][x] == 0) ) { i++; if (i <= n) { printf ("%d %d %d %d %d %d : ", r, s, t, z, y, x); printf ("%d %d\n", p1->pix[r][s][t][z][y][x], p2->pix[r][s][t][z][y][x]); } } } return i; } case NPIC_IMAGE_6L : { Npic_image_6l *p1 = NpicCastImage (np1), *p2 = NpicCastImage (np2); int r, s, t, z, y, x; for (r = 0; r < p1->rmax; r++) for (s = 0; s < p1->smax; s++) for (t = 0; t < p1->tmax; t++) for (z = 0; z < p1->zmax; z++) for (y = 0; y < p1->ymax; y++) for (x = 0; x < p1->xmax; x++) { if ( (p1->pix[r][s][t][z][y][x] == 0) != (p2->pix[r][s][t][z][y][x] == 0) ) { i++; if (i <= n) { printf ("%d %d %d %d %d %d : ", r, s, t, z, y, x); printf ("%" NPIC_PL " %" NPIC_PL "\n", p1->pix[r][s][t][z][y][x], p2->pix[r][s][t][z][y][x]); } } } return i; } case NPIC_IMAGE_6D : { Npic_image_6d *p1 = NpicCastImage (np1), *p2 = NpicCastImage (np2); int r, s, t, z, y, x; for (r = 0; r < p1->rmax; r++) for (s = 0; s < p1->smax; s++) for (t = 0; t < p1->tmax; t++) for (z = 0; z < p1->zmax; z++) for (y = 0; y < p1->ymax; y++) for (x = 0; x < p1->xmax; x++) { if ( (p1->pix[r][s][t][z][y][x] == 0) != (p2->pix[r][s][t][z][y][x] == 0) ) { i++; if (i <= n) { printf ("%d %d %d %d %d %d : ", r, s, t, z, y, x); printf ("%lf %lf\n", p1->pix[r][s][t][z][y][x], p2->pix[r][s][t][z][y][x]); } } } return i; } case NPIC_IMAGE_2Q : { Npic_image_2q *p1 = NpicCastImage (np1), *p2 = NpicCastImage (np2); int y, x; for (y = 0; y < p1->ymax; y++) for (x = 0; x < p1->xmax; x++) { if ( ( p1->pix[y][x].a == 0 && p1->pix[y][x].b == 0 && p1->pix[y][x].c == 0 && p1->pix[y][x].d == 0 ) != ( p2->pix[y][x].a == 0 && p2->pix[y][x].b == 0 && p2->pix[y][x].c == 0 && p2->pix[y][x].d == 0 ) ) { i++; if (i <= n) { printf ("%d %d : ", y, x); printf ("%d %d %d %d %d %d %d %d\n", p1->pix[y][x].a, p1->pix[y][x].b, p1->pix[y][x].c, p1->pix[y][x].d, p2->pix[y][x].a, p2->pix[y][x].b, p2->pix[y][x].c, p2->pix[y][x].d ); } } } return i; } case NPIC_IMAGE_3Q : { Npic_image_3q *p1 = NpicCastImage (np1), *p2 = NpicCastImage (np2); int z, y, x; for (z = 0; z < p1->zmax; z++) for (y = 0; y < p1->ymax; y++) for (x = 0; x < p1->xmax; x++) { if ( ( p1->pix[z][y][x].a == 0 && p1->pix[z][y][x].b == 0 && p1->pix[z][y][x].c == 0 && p1->pix[z][y][x].d == 0 ) != ( p2->pix[z][y][x].a == 0 && p2->pix[z][y][x].b == 0 && p2->pix[z][y][x].c == 0 && p2->pix[z][y][x].d == 0 ) ) { i++; if (i <= n) { printf ("%d %d %d : ", z, y, x); printf ("%d %d %d %d %d %d %d %d\n", p1->pix[z][y][x].a, p1->pix[z][y][x].b, p1->pix[z][y][x].c, p1->pix[z][y][x].d, p2->pix[z][y][x].a, p2->pix[z][y][x].b, p2->pix[z][y][x].c, p2->pix[z][y][x].d ); } } } return i; } case NPIC_IMAGE_4Q : { Npic_image_4q *p1 = NpicCastImage (np1), *p2 = NpicCastImage (np2); int t, z, y, x; for (t = 0; t < p1->tmax; t++) for (z = 0; z < p1->zmax; z++) for (y = 0; y < p1->ymax; y++) for (x = 0; x < p1->xmax; x++) { if ( ( p1->pix[t][z][y][x].a == 0 && p1->pix[t][z][y][x].b == 0 && p1->pix[t][z][y][x].c == 0 && p1->pix[t][z][y][x].d == 0 ) != ( p2->pix[t][z][y][x].a == 0 && p2->pix[t][z][y][x].b == 0 && p2->pix[t][z][y][x].c == 0 && p2->pix[t][z][y][x].d == 0 ) ) { i++; if (i <= n) { printf ("%d %d %d %d : ", t, z, y, x); printf ("%d %d %d %d %d %d %d %d\n", p1->pix[t][z][y][x].a, p1->pix[t][z][y][x].b, p1->pix[t][z][y][x].c, p1->pix[t][z][y][x].d, p2->pix[t][z][y][x].a, p2->pix[t][z][y][x].b, p2->pix[t][z][y][x].c, p2->pix[t][z][y][x].d ); } } } return i; } case NPIC_IMAGE_5Q : { Npic_image_5q *p1 = NpicCastImage (np1), *p2 = NpicCastImage (np2); int s, t, z, y, x; for (s = 0; s < p1->smax; s++) for (t = 0; t < p1->tmax; t++) for (z = 0; z < p1->zmax; z++) for (y = 0; y < p1->ymax; y++) for (x = 0; x < p1->xmax; x++) { if ( ( p1->pix[s][t][z][y][x].a == 0 && p1->pix[s][t][z][y][x].b == 0 && p1->pix[s][t][z][y][x].c == 0 && p1->pix[s][t][z][y][x].d == 0 ) != ( p2->pix[s][t][z][y][x].a == 0 && p2->pix[s][t][z][y][x].b == 0 && p2->pix[s][t][z][y][x].c == 0 && p2->pix[s][t][z][y][x].d == 0 ) ) { i++; if (i <= n) { printf ("%d %d %d %d %d : ", s, t, z, y, x); printf ("%d %d %d %d %d %d %d %d\n", p1->pix[s][t][z][y][x].a, p1->pix[s][t][z][y][x].b, p1->pix[s][t][z][y][x].c, p1->pix[s][t][z][y][x].d, p2->pix[s][t][z][y][x].a, p2->pix[s][t][z][y][x].b, p2->pix[s][t][z][y][x].c, p2->pix[s][t][z][y][x].d ); } } } return i; } case NPIC_IMAGE_6Q : { Npic_image_6q *p1 = NpicCastImage (np1), *p2 = NpicCastImage (np2); int r, s, t, z, y, x; for (r = 0; r < p1->rmax; r++) for (s = 0; s < p1->smax; s++) for (t = 0; t < p1->tmax; t++) for (z = 0; z < p1->zmax; z++) for (y = 0; y < p1->ymax; y++) for (x = 0; x < p1->xmax; x++) { if ( ( p1->pix[r][s][t][z][y][x].a == 0 && p1->pix[r][s][t][z][y][x].b == 0 && p1->pix[r][s][t][z][y][x].c == 0 && p1->pix[r][s][t][z][y][x].d == 0 ) != ( p2->pix[r][s][t][z][y][x].a == 0 && p2->pix[r][s][t][z][y][x].b == 0 && p2->pix[r][s][t][z][y][x].c == 0 && p2->pix[r][s][t][z][y][x].d == 0 ) ) { i++; if (i <= n) { printf ("%d %d %d %d %d %d : ", r, s, t, z, y, x); printf ("%d %d %d %d %d %d %d %d\n", p1->pix[r][s][t][z][y][x].a, p1->pix[r][s][t][z][y][x].b, p1->pix[r][s][t][z][y][x].c, p1->pix[r][s][t][z][y][x].d, p2->pix[r][s][t][z][y][x].a, p2->pix[r][s][t][z][y][x].b, p2->pix[r][s][t][z][y][x].c, p2->pix[r][s][t][z][y][x].d ); } } } return i; } default : return NpicError (__func__, NPIC_ERR_UNEX_NPIC, ""); } } /*----------------------------------------------------------------------------*/