add 'fimg_lissage_3x3' function
This commit is contained in:
parent
54b061232d
commit
99bbd20b47
@ -20,7 +20,7 @@
|
|||||||
* https://git.tetalab.org/tTh/FloatImg
|
* https://git.tetalab.org/tTh/FloatImg
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define FIMG_VERSION (223)
|
#define FIMG_VERSION (224)
|
||||||
#define RELEASE_NAME ("noname")
|
#define RELEASE_NAME ("noname")
|
||||||
|
|
||||||
/* XXX add a test for stdint.h / uint32_t XXX */
|
/* XXX add a test for stdint.h / uint32_t XXX */
|
||||||
@ -153,6 +153,7 @@ typedef struct {
|
|||||||
*/
|
*/
|
||||||
int fimg_killborders(FloatImg *img);
|
int fimg_killborders(FloatImg *img);
|
||||||
int fimg_lissage_2x2(FloatImg *img);
|
int fimg_lissage_2x2(FloatImg *img);
|
||||||
|
int fimg_lissage_3x3(FloatImg *img);
|
||||||
int fimg_show_filter(char *title, FimgFilter3x3 *filtr);
|
int fimg_show_filter(char *title, FimgFilter3x3 *filtr);
|
||||||
int fimg_filter_3x3(FloatImg *s, FloatImg *d, FimgFilter3x3 *filtr);
|
int fimg_filter_3x3(FloatImg *s, FloatImg *d, FimgFilter3x3 *filtr);
|
||||||
|
|
||||||
|
@ -200,7 +200,6 @@ for (idx=0; idx<h; idx++) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
o = w * (h - 1);
|
o = w * (h - 1);
|
||||||
|
|
||||||
for (idx=0; idx<w; idx++) {
|
for (idx=0; idx<w; idx++) {
|
||||||
#if FAST
|
#if FAST
|
||||||
img->R[idx] = 0.0;
|
img->R[idx] = 0.0;
|
||||||
@ -233,4 +232,42 @@ fimg_killborders(img);
|
|||||||
return foo;
|
return foo;
|
||||||
}
|
}
|
||||||
/* -------------------------------------------------------------------- */
|
/* -------------------------------------------------------------------- */
|
||||||
|
/* -------------------------------------------------------------------- */
|
||||||
|
int fimg_lissage_3x3(FloatImg *img)
|
||||||
|
{
|
||||||
|
int foo;
|
||||||
|
FloatImg tmp;
|
||||||
|
|
||||||
|
fprintf(stderr, ">>> %s ( %p )\n", __func__, img);
|
||||||
|
|
||||||
|
static FimgFilter3x3 lowpass = {
|
||||||
|
{
|
||||||
|
1.0, 2.0, 1.0,
|
||||||
|
2.0, 4.0, 2.0,
|
||||||
|
1.0, 2.0, 1.0,
|
||||||
|
},
|
||||||
|
16.0, 0.0
|
||||||
|
};
|
||||||
|
|
||||||
|
foo = fimg_clone(img, &tmp, 1);
|
||||||
|
if (foo) {
|
||||||
|
fprintf(stderr, "%s: clone -> %d\n", __func__, foo);
|
||||||
|
abort();
|
||||||
|
}
|
||||||
|
foo = fimg_filter_3x3(&tmp, img, &lowpass);
|
||||||
|
if (foo) {
|
||||||
|
fprintf(stderr, "%s: lowpass -> %d\n", __func__, foo);
|
||||||
|
abort();
|
||||||
|
}
|
||||||
|
foo = fimg_destroy(&tmp);
|
||||||
|
if (foo) {
|
||||||
|
fprintf(stderr, "%s: destroy -> %d\n", __func__, foo);
|
||||||
|
abort();
|
||||||
|
}
|
||||||
|
|
||||||
|
fimg_killborders(img);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
/* -------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user