A4
BIN
A4/TP_A4.zip
42
A4/TP_A4/Modele_exo4/CPP.txt
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
detecting features for ./input_images/000009.png
|
||||||
|
sigma = 1.100, windowsize = 10, max_features = 1000
|
||||||
|
image_size: [1241 x 376] px
|
||||||
|
[gettimeofday] EigenValues Time 321.471008
|
||||||
|
1000 features detected
|
||||||
|
Convolution Time 0.080770
|
||||||
|
EigenValues Time 0.321471
|
||||||
|
detecting features for ./input_images/img_1.jpg
|
||||||
|
sigma = 1.100, windowsize = 10, max_features = 1000
|
||||||
|
image_size: [3282 x 5114] px
|
||||||
|
[gettimeofday] EigenValues Time 11066.154297
|
||||||
|
1000 features detected
|
||||||
|
Convolution Time 2.545196
|
||||||
|
EigenValues Time 11.066154
|
||||||
|
detecting features for ./input_images/img_2.jpg
|
||||||
|
sigma = 1.100, windowsize = 10, max_features = 1000
|
||||||
|
image_size: [2268 x 4032] px
|
||||||
|
[gettimeofday] EigenValues Time 6031.787109
|
||||||
|
1000 features detected
|
||||||
|
Convolution Time 1.477949
|
||||||
|
EigenValues Time 6.031787
|
||||||
|
detecting features for ./input_images/img_3.jpg
|
||||||
|
sigma = 1.100, windowsize = 10, max_features = 1000
|
||||||
|
image_size: [3072 x 4608] px
|
||||||
|
[gettimeofday] EigenValues Time 9350.551758
|
||||||
|
1000 features detected
|
||||||
|
Convolution Time 2.147998
|
||||||
|
EigenValues Time 9.350552
|
||||||
|
detecting features for ./input_images/img_4.jpg
|
||||||
|
sigma = 1.100, windowsize = 10, max_features = 1000
|
||||||
|
image_size: [3999 x 3999] px
|
||||||
|
[gettimeofday] EigenValues Time 10454.441406
|
||||||
|
1000 features detected
|
||||||
|
Convolution Time 2.435961
|
||||||
|
EigenValues Time 10.454440
|
||||||
|
detecting features for ./input_images/img_5.jpg
|
||||||
|
sigma = 1.100, windowsize = 10, max_features = 1000
|
||||||
|
image_size: [2656 x 3976] px
|
||||||
|
[gettimeofday] EigenValues Time 6981.282227
|
||||||
|
1000 features detected
|
||||||
|
Convolution Time 1.657244
|
||||||
|
EigenValues Time 6.981283
|
BIN
A4/TP_A4/Modele_exo4/ShiTomasi
Normal file → Executable file
7
A4/TP_A4/Modele_exo4/modele.txt
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
detecting features for ./input_images/000009.png
|
||||||
|
sigma = 1.100, windowsize = 50, max_features = 10000
|
||||||
|
image_size: [1241 x 376] px
|
||||||
|
[gettimeofday] EigenValues Time 1587.637939
|
||||||
|
2702 features detected
|
||||||
|
Convolution Time 0.024775
|
||||||
|
EigenValues Time 1.587637
|
9
A4/TP_A4/Modele_exo4/script.sh
Executable file
|
@ -0,0 +1,9 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
for s in 1 2 5 10 15 20
|
||||||
|
do
|
||||||
|
for f in 5 10 50 100 500 1000
|
||||||
|
do
|
||||||
|
./ShiTomasi ./input_images/000009.png $s $f >> time.txt
|
||||||
|
done
|
||||||
|
done
|
BIN
A4/TP_A4/exo4_opti/CPP.png
Normal file
After Width: | Height: | Size: 30 KiB |
84
A4/TP_A4/exo4_opti/CPP.txt
Normal file
|
@ -0,0 +1,84 @@
|
||||||
|
detecting features for ./input_images/000009.png
|
||||||
|
sigma = 1.100, windowsize = 10, max_features = 1000
|
||||||
|
image_size: [1241 x 376] px
|
||||||
|
[gettimeofday] EigenValues Time 103.567001
|
||||||
|
1000 features detected
|
||||||
|
Convolution Time 0.122011
|
||||||
|
EigenValues Time 0.103566
|
||||||
|
detecting features for ./input_images/img_1.jpg
|
||||||
|
sigma = 1.100, windowsize = 10, max_features = 1000
|
||||||
|
image_size: [3282 x 5114] px
|
||||||
|
[gettimeofday] EigenValues Time 2251.462891
|
||||||
|
1000 features detected
|
||||||
|
Convolution Time 0.671026
|
||||||
|
EigenValues Time 2.251463
|
||||||
|
detecting features for ./input_images/img_2.jpg
|
||||||
|
sigma = 1.100, windowsize = 10, max_features = 1000
|
||||||
|
image_size: [2268 x 4032] px
|
||||||
|
[gettimeofday] EigenValues Time 1126.833984
|
||||||
|
1000 features detected
|
||||||
|
Convolution Time 0.366891
|
||||||
|
EigenValues Time 1.126834
|
||||||
|
detecting features for ./input_images/img_3.jpg
|
||||||
|
sigma = 1.100, windowsize = 10, max_features = 1000
|
||||||
|
image_size: [3072 x 4608] px
|
||||||
|
[gettimeofday] EigenValues Time 1776.987061
|
||||||
|
1000 features detected
|
||||||
|
Convolution Time 0.597440
|
||||||
|
EigenValues Time 1.776987
|
||||||
|
detecting features for ./input_images/img_4.jpg
|
||||||
|
sigma = 1.100, windowsize = 10, max_features = 1000
|
||||||
|
image_size: [3999 x 3999] px
|
||||||
|
[gettimeofday] EigenValues Time 1873.168945
|
||||||
|
1000 features detected
|
||||||
|
Convolution Time 0.632375
|
||||||
|
EigenValues Time 1.873169
|
||||||
|
detecting features for ./input_images/img_5.jpg
|
||||||
|
sigma = 1.100, windowsize = 10, max_features = 1000
|
||||||
|
image_size: [2656 x 3976] px
|
||||||
|
[gettimeofday] EigenValues Time 1474.021973
|
||||||
|
1000 features detected
|
||||||
|
Convolution Time 0.470415
|
||||||
|
EigenValues Time 1.474022
|
||||||
|
detecting features for ./input_images/000009.png
|
||||||
|
sigma = 1.100, windowsize = 10, max_features = 1000
|
||||||
|
image_size: [1241 x 376] px
|
||||||
|
[gettimeofday] EigenValues Time 321.471008
|
||||||
|
1000 features detected
|
||||||
|
Convolution Time 0.080770
|
||||||
|
EigenValues Time 0.321471
|
||||||
|
detecting features for ./input_images/img_1.jpg
|
||||||
|
sigma = 1.100, windowsize = 10, max_features = 1000
|
||||||
|
image_size: [3282 x 5114] px
|
||||||
|
[gettimeofday] EigenValues Time 11066.154297
|
||||||
|
1000 features detected
|
||||||
|
Convolution Time 2.545196
|
||||||
|
EigenValues Time 11.066154
|
||||||
|
detecting features for ./input_images/img_2.jpg
|
||||||
|
sigma = 1.100, windowsize = 10, max_features = 1000
|
||||||
|
image_size: [2268 x 4032] px
|
||||||
|
[gettimeofday] EigenValues Time 6031.787109
|
||||||
|
1000 features detected
|
||||||
|
Convolution Time 1.477949
|
||||||
|
EigenValues Time 6.031787
|
||||||
|
detecting features for ./input_images/img_3.jpg
|
||||||
|
sigma = 1.100, windowsize = 10, max_features = 1000
|
||||||
|
image_size: [3072 x 4608] px
|
||||||
|
[gettimeofday] EigenValues Time 9350.551758
|
||||||
|
1000 features detected
|
||||||
|
Convolution Time 2.147998
|
||||||
|
EigenValues Time 9.350552
|
||||||
|
detecting features for ./input_images/img_4.jpg
|
||||||
|
sigma = 1.100, windowsize = 10, max_features = 1000
|
||||||
|
image_size: [3999 x 3999] px
|
||||||
|
[gettimeofday] EigenValues Time 10454.441406
|
||||||
|
1000 features detected
|
||||||
|
Convolution Time 2.435961
|
||||||
|
EigenValues Time 10.454440
|
||||||
|
detecting features for ./input_images/img_5.jpg
|
||||||
|
sigma = 1.100, windowsize = 10, max_features = 1000
|
||||||
|
image_size: [2656 x 3976] px
|
||||||
|
[gettimeofday] EigenValues Time 6981.282227
|
||||||
|
1000 features detected
|
||||||
|
Convolution Time 1.657244
|
||||||
|
EigenValues Time 6.981283
|
29
A4/TP_A4/exo4_opti/Makefile
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
CC=gcc
|
||||||
|
CCFLAGS=-Wall -std=c99 -fopenmp
|
||||||
|
LDFLAGS=-lm -fopenmp
|
||||||
|
SOURCES=$(wildcard *.c)
|
||||||
|
OBJECTS=$(SOURCES:.c=.o)
|
||||||
|
TARGET=ShiTomasi
|
||||||
|
|
||||||
|
all: debug
|
||||||
|
|
||||||
|
debug: CCFLAGS += -DDEBUG -g
|
||||||
|
debug: $(TARGET)
|
||||||
|
|
||||||
|
release: CCFLAGS += -O2
|
||||||
|
release: $(TARGET)
|
||||||
|
|
||||||
|
benchmode: CCFLAGS += -O2 -DBENCHMARKMODE
|
||||||
|
benchmode: $(TARGET)
|
||||||
|
|
||||||
|
$(TARGET): $(OBJECTS) $(CXXOBJECTS)
|
||||||
|
$(CC) -o $@ $^ $(LDFLAGS)
|
||||||
|
|
||||||
|
%.o: %.c %.h
|
||||||
|
$(CC) $(CCFLAGS) -c $<
|
||||||
|
|
||||||
|
%.o: %.c
|
||||||
|
$(CC) $(CCFLAGS) -c $<
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f *.pgm *.o $(TARGET)
|
BIN
A4/TP_A4/exo4_opti/ShiTomasi
Executable file
375
A4/TP_A4/exo4_opti/ShiTomasi.c
Normal file
|
@ -0,0 +1,375 @@
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
|
#include <math.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <sys/time.h>
|
||||||
|
#include "image_io.h"
|
||||||
|
#include "ShiTomasi.h"
|
||||||
|
#include <omp.h>
|
||||||
|
#include <sys/time.h>
|
||||||
|
|
||||||
|
float timedifference_msec(struct timeval t0, struct timeval t1)
|
||||||
|
{
|
||||||
|
return (t1.tv_sec - t0.tv_sec) * 1000.0f + (t1.tv_usec - t0.tv_usec) / 1000.0f;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(int argc, char **argv)
|
||||||
|
{
|
||||||
|
|
||||||
|
// path to the image to process
|
||||||
|
char *filepath = NULL;
|
||||||
|
|
||||||
|
// sigma of the gaussian distribution
|
||||||
|
float sigma = 1.1;
|
||||||
|
// size of a pixel 'neighborhood'
|
||||||
|
int windowsize = 4;
|
||||||
|
// # of features
|
||||||
|
int max_features = 1024;
|
||||||
|
|
||||||
|
// argument parsing logic
|
||||||
|
if (argc == 4)
|
||||||
|
{
|
||||||
|
filepath = argv[1];
|
||||||
|
windowsize = atof(argv[2]);
|
||||||
|
max_features = atoi(argv[3]);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
help(NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("detecting features for %s\n", filepath);
|
||||||
|
printf("sigma = %0.3f, windowsize = %d, max_features = %d\n", sigma, windowsize, max_features);
|
||||||
|
|
||||||
|
int width;
|
||||||
|
int height;
|
||||||
|
int kernel_width;
|
||||||
|
int a;
|
||||||
|
|
||||||
|
// calculate kernel width based on sigma
|
||||||
|
a = (int)round(2.5 * sigma - .5);
|
||||||
|
kernel_width = 2 * a + 1;
|
||||||
|
|
||||||
|
// malloc and read the image to be processed
|
||||||
|
float *original_image;
|
||||||
|
|
||||||
|
read_imagef(filepath, &original_image, &width, &height);
|
||||||
|
|
||||||
|
printf("image_size: [%d x %d] px\n", width, height);
|
||||||
|
|
||||||
|
// malloc and generate the kernels
|
||||||
|
float *gkernel = (float *)malloc(sizeof(float) * kernel_width);
|
||||||
|
float *dkernel = (float *)malloc(sizeof(float) * kernel_width);
|
||||||
|
gen_kernel(gkernel, dkernel, sigma, a, kernel_width);
|
||||||
|
|
||||||
|
// create hgrad and vgrad and temp
|
||||||
|
float *hgrad = (float *)malloc(sizeof(float) * width * height);
|
||||||
|
float *vgrad = (float *)malloc(sizeof(float) * width * height);
|
||||||
|
float *tmp_image = (float *)malloc(sizeof(float) * width * height);
|
||||||
|
|
||||||
|
int nb_thread = omp_get_max_threads();
|
||||||
|
omp_set_num_threads(nb_thread);
|
||||||
|
|
||||||
|
double timer_start_conv = omp_get_wtime();
|
||||||
|
// convolve to get the vgrad and hgrad
|
||||||
|
convolve(gkernel, original_image, tmp_image, width, height, kernel_width, 1, a);
|
||||||
|
convolve(dkernel, tmp_image, vgrad, width, height, 1, kernel_width, a);
|
||||||
|
convolve(gkernel, original_image, tmp_image, width, height, 1, kernel_width, a);
|
||||||
|
convolve(dkernel, tmp_image, hgrad, width, height, kernel_width, 1, a);
|
||||||
|
|
||||||
|
double timer_elapsed_conv = omp_get_wtime() - timer_start_conv;
|
||||||
|
|
||||||
|
free(tmp_image);
|
||||||
|
free(gkernel);
|
||||||
|
free(dkernel);
|
||||||
|
|
||||||
|
// Compute the eigenvalues of each pixel's z matrix. After this we can free the gradients.
|
||||||
|
data_wrapper_t *eigenvalues = (data_wrapper_t *)malloc(sizeof(data_wrapper_t) * width * height);
|
||||||
|
|
||||||
|
struct timeval current_time, end_time;
|
||||||
|
double timer_start_eigen = omp_get_wtime();
|
||||||
|
gettimeofday(¤t_time, NULL);
|
||||||
|
compute_eigenvalues(hgrad, vgrad, height, width, windowsize, eigenvalues);
|
||||||
|
double timer_elapsed_eigen = omp_get_wtime() - timer_start_eigen;
|
||||||
|
gettimeofday(&end_time, NULL);
|
||||||
|
// float elapsed = timedifference_msec(current_time, end_time);
|
||||||
|
float elapsed = (end_time.tv_sec - current_time.tv_sec) * 1000.0f + (end_time.tv_usec - current_time.tv_usec) / 1000.0f;
|
||||||
|
|
||||||
|
// long double elapsed_double = (float)elapsed / (float)1000000;
|
||||||
|
printf("[gettimeofday] EigenValues Time %f\n", elapsed);
|
||||||
|
// printf("[gettimeofday] EigenValues Time %ld\n", (long)elapsed_double);
|
||||||
|
|
||||||
|
free(hgrad);
|
||||||
|
free(vgrad);
|
||||||
|
|
||||||
|
// Find the features based on the eigenvalues.
|
||||||
|
data_wrapper_t *features;
|
||||||
|
unsigned int features_count;
|
||||||
|
|
||||||
|
features_count = find_features(eigenvalues, max_features, width, height, &features);
|
||||||
|
|
||||||
|
free(eigenvalues);
|
||||||
|
|
||||||
|
printf("%d features detected\n", features_count);
|
||||||
|
|
||||||
|
printf("Convolution Time %f\n", timer_elapsed_conv);
|
||||||
|
printf("EigenValues Time %f\n", timer_elapsed_eigen);
|
||||||
|
|
||||||
|
// printf("\t");
|
||||||
|
// print_features(features, features_count);
|
||||||
|
|
||||||
|
// Mark the features in the output image.
|
||||||
|
draw_features(features, features_count, original_image, width, height);
|
||||||
|
|
||||||
|
free(features);
|
||||||
|
|
||||||
|
// Now we write the output.
|
||||||
|
char corner_image[30];
|
||||||
|
sprintf(corner_image, "output_images/corners.pgm");
|
||||||
|
|
||||||
|
write_imagef(corner_image, original_image, width, height);
|
||||||
|
|
||||||
|
// Free stuff leftover.
|
||||||
|
free(original_image);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void draw_features(data_wrapper_t *features, unsigned int count, float *image, int image_width, int image_height)
|
||||||
|
{
|
||||||
|
int radius = image_width * 0.0025;
|
||||||
|
//#pragma omp parallel for
|
||||||
|
for (int i = 0; i < count; ++i)
|
||||||
|
{
|
||||||
|
int x = features[i].x;
|
||||||
|
int y = features[i].y;
|
||||||
|
for (int k = -1 * radius; k <= radius; k++)
|
||||||
|
{
|
||||||
|
for (int m = -1 * radius; m <= radius; m++)
|
||||||
|
{
|
||||||
|
if ((x + k) >= 0 && (x + k) < image_height && (y + m) >= 0 && (y + m) < image_width)
|
||||||
|
image[(x + k) * image_width + (y + m)] = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
unsigned int find_features(data_wrapper_t *eigenvalues, int max_features, int image_width, int image_height, data_wrapper_t **features)
|
||||||
|
{
|
||||||
|
size_t image_size = image_height * image_width;
|
||||||
|
|
||||||
|
// Sort eigenvalues in descending order while keeping their corresponding pixel index in the image.
|
||||||
|
qsort(eigenvalues, image_height * image_width, sizeof *eigenvalues, sort_data_wrapper_value_desc);
|
||||||
|
|
||||||
|
// Create the features buffer based on the max_features value (acts as a percentage of the image size).
|
||||||
|
*features = (data_wrapper_t *)malloc(sizeof(data_wrapper_t) * max_features);
|
||||||
|
|
||||||
|
// Fill the features buffer!
|
||||||
|
unsigned int features_count = 0;
|
||||||
|
const int ignore_x = 3; // ignore this many pixels rows from top/bottom of image
|
||||||
|
const int ignore_y = 3; // ignore this many pixels columns from left/right of image
|
||||||
|
for (int i = 0; i < image_size && features_count < max_features; ++i)
|
||||||
|
{
|
||||||
|
// Ignore top left, top right, bottom right, bottom left edges of image.
|
||||||
|
if (eigenvalues[i].x <= ignore_x || eigenvalues[i].y <= ignore_y ||
|
||||||
|
eigenvalues[i].x >= image_width - 1 - ignore_x || eigenvalues[i].y >= image_height - 1 - ignore_y)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Have to seed the first feature so we have a place to start.
|
||||||
|
if (features_count == 0)
|
||||||
|
{
|
||||||
|
(*features)[0] = eigenvalues[i];
|
||||||
|
features_count++;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check if prospective feature is more than 8 manhattan distance away from any existing feature.
|
||||||
|
int is_good = 1;
|
||||||
|
for (int j = 0; j < features_count; ++j)
|
||||||
|
{
|
||||||
|
int manhattan = abs((*features)[j].x - eigenvalues[i].x) + abs((*features)[j].y - eigenvalues[i].y);
|
||||||
|
if (manhattan <= 8)
|
||||||
|
{
|
||||||
|
is_good = 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// If the prospective feature was at least 8 manhattan distance from all existing features, then we can add it.
|
||||||
|
if (is_good)
|
||||||
|
{
|
||||||
|
(*features)[features_count] = eigenvalues[i];
|
||||||
|
features_count++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return features_count;
|
||||||
|
}
|
||||||
|
|
||||||
|
int sort_data_wrapper_value_desc(const void *a, const void *b)
|
||||||
|
{
|
||||||
|
const data_wrapper_t *aa = (const data_wrapper_t *)a;
|
||||||
|
const data_wrapper_t *bb = (const data_wrapper_t *)b;
|
||||||
|
return (aa->data < bb->data) - (aa->data > bb->data);
|
||||||
|
}
|
||||||
|
|
||||||
|
int sort_data_wrapper_index_asc(const void *a, const void *b)
|
||||||
|
{
|
||||||
|
const data_wrapper_t *aa = (const data_wrapper_t *)a;
|
||||||
|
const data_wrapper_t *bb = (const data_wrapper_t *)b;
|
||||||
|
|
||||||
|
if (aa->x == bb->x)
|
||||||
|
return ((aa->y > bb->y) - (aa->y < bb->y));
|
||||||
|
else
|
||||||
|
return ((aa->x > bb->x) - (aa->x < bb->x));
|
||||||
|
}
|
||||||
|
|
||||||
|
void compute_eigenvalues(float *hgrad, float *vgrad, int image_height, int image_width, int windowsize, data_wrapper_t *eigenvalues)
|
||||||
|
{
|
||||||
|
int w = floor(windowsize / 2);
|
||||||
|
|
||||||
|
int i, j, k, m, offseti, offsetj;
|
||||||
|
float ixx_sum, iyy_sum, ixiy_sum;
|
||||||
|
|
||||||
|
#pragma omp parallel for collapse(2) schedule(static,100)
|
||||||
|
for (i = 0; i < image_height; i++)
|
||||||
|
{
|
||||||
|
for (j = 0; j < image_width; j++)
|
||||||
|
{
|
||||||
|
ixx_sum = 0;
|
||||||
|
iyy_sum = 0;
|
||||||
|
ixiy_sum = 0;
|
||||||
|
|
||||||
|
// #pragma omp parallel for reduction(+:ixx_sum) reduction(+:iyy_sum) reduction(+:ixiy_sum)
|
||||||
|
for (k = 0; k < windowsize; k++)
|
||||||
|
{
|
||||||
|
for (m = 0; m < windowsize; m++)
|
||||||
|
{
|
||||||
|
offseti = -1 * w + k;
|
||||||
|
offsetj = -1 * w + m;
|
||||||
|
if (i + offseti >= 0 && i + offseti < image_height && j + offsetj >= 0 && j + offsetj < image_width)
|
||||||
|
{
|
||||||
|
ixx_sum += hgrad[(i + offseti) * image_width + (j + offsetj)] * hgrad[(i + offseti) * image_width + (j + offsetj)];
|
||||||
|
iyy_sum += vgrad[(i + offseti) * image_width + (j + offsetj)] * vgrad[(i + offseti) * image_width + (j + offsetj)];
|
||||||
|
ixiy_sum += hgrad[(i + offseti) * image_width + (j + offsetj)] * vgrad[(i + offseti) * image_width + (j + offsetj)];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
eigenvalues[i * image_width + j].x = i;
|
||||||
|
eigenvalues[i * image_width + j].y = j;
|
||||||
|
eigenvalues[i * image_width + j].data = min_eigenvalue(ixx_sum, ixiy_sum, ixiy_sum, iyy_sum);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
float min_eigenvalue(float a, float b, float c, float d)
|
||||||
|
{
|
||||||
|
float ev_one = (a + d) / 2 + pow(((a + d) * (a + d)) / 4 - (a * d - b * c), 0.5);
|
||||||
|
float ev_two = (a + d) / 2 - pow(((a + d) * (a + d)) / 4 - (a * d - b * c), 0.5);
|
||||||
|
if (ev_one >= ev_two)
|
||||||
|
{
|
||||||
|
return ev_two;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return ev_one;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void convolve(float *kernel, float *image, float *resultimage, int image_width, int image_height, int kernel_width, int kernel_height, int half)
|
||||||
|
{
|
||||||
|
float sum;
|
||||||
|
int i, j, k, m, offsetj, offseti;
|
||||||
|
// assign the kernel to the new array
|
||||||
|
// #pragma omp parallel for collapse(2)
|
||||||
|
#pragma omp parallel for schedule(static,100)
|
||||||
|
for (i = 0; i < image_height; i++)
|
||||||
|
{
|
||||||
|
for (j = 0; j < image_width; j++)
|
||||||
|
{
|
||||||
|
|
||||||
|
// reset tracker
|
||||||
|
sum = 0.0;
|
||||||
|
// for each item in the kernel
|
||||||
|
// #pragma omp parallel for collapse(2)
|
||||||
|
for (k = 0; k < kernel_height; k++)
|
||||||
|
{
|
||||||
|
for (m = 0; m < kernel_width; m++)
|
||||||
|
{
|
||||||
|
offseti = -1 * (kernel_height / 2) + k;
|
||||||
|
offsetj = -1 * (kernel_width / 2) + m;
|
||||||
|
if (i + offseti >= 0 && i + offseti < image_height && j + offsetj >= 0 && j + offsetj < image_width)
|
||||||
|
{
|
||||||
|
sum += (float)(image[(i + offseti) * image_width + (j + offsetj)]) * kernel[k * kernel_width + m];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// copy it back
|
||||||
|
resultimage[i * image_width + j] = sum;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void gen_kernel(float *gkernel, float *dkernel, float sigma, int a, int w)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
float sum_gkern;
|
||||||
|
float sum_dkern;
|
||||||
|
sum_gkern = 0;
|
||||||
|
sum_dkern = 0;
|
||||||
|
// #pragma omp parallel for reduction(+:sum_gkern) reduction(-:sum_dkern)
|
||||||
|
for (i = 0; i < w; i++)
|
||||||
|
{
|
||||||
|
gkernel[i] = (float)exp((float)(-1.0 * (i - a) * (i - a)) / (2 * sigma * sigma));
|
||||||
|
dkernel[i] = (float)(-1 * (i - a)) * (float)exp((float)(-1.0 * (i - a) * (i - a)) / (2 * sigma * sigma));
|
||||||
|
sum_gkern = sum_gkern + gkernel[i];
|
||||||
|
sum_dkern = sum_dkern - (float)i * dkernel[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
// reverse the kernel by creating a new kernel, yes not ideal
|
||||||
|
float *newkernel = (float *)malloc(sizeof(float) * w);
|
||||||
|
// #pragma omp parallel for
|
||||||
|
for (i = 0; i < w; i++)
|
||||||
|
{
|
||||||
|
dkernel[i] = dkernel[i] / sum_dkern;
|
||||||
|
gkernel[i] = gkernel[i] / sum_gkern;
|
||||||
|
newkernel[w - i] = dkernel[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
// copy new kernel back in
|
||||||
|
// #pragma omp parallel for
|
||||||
|
for (i = 0; i < w; i++)
|
||||||
|
{
|
||||||
|
dkernel[i] = newkernel[i + 1];
|
||||||
|
}
|
||||||
|
free(newkernel);
|
||||||
|
}
|
||||||
|
|
||||||
|
void help(const char *err)
|
||||||
|
{
|
||||||
|
if (err != NULL)
|
||||||
|
printf("%s\n", err);
|
||||||
|
printf("Utilisation: ./ShiTomasi <chemin vers l'image> [Taille de la fenêtre] [Nombre de primitives] \n");
|
||||||
|
printf("arguments:\n");
|
||||||
|
printf("\tTaille de la fenêtre: taille du voisinage d'un pixel dans l'image\n");
|
||||||
|
printf("\tNombre de primitives: nombre de primitives à extraire\n");
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
void print_features(data_wrapper_t *features, unsigned int count)
|
||||||
|
{
|
||||||
|
// Sort the features by
|
||||||
|
qsort(features, count, sizeof *features, sort_data_wrapper_index_asc);
|
||||||
|
for (unsigned int i = 0; i < count; ++i)
|
||||||
|
{
|
||||||
|
if (i % 15 != 0 || i == 0)
|
||||||
|
printf("(%d,%d) ", features[i].x, features[i].y);
|
||||||
|
else
|
||||||
|
printf("(%d,%d)\n\t", features[i].x, features[i].y);
|
||||||
|
}
|
||||||
|
printf("\n");
|
||||||
|
}
|
41
A4/TP_A4/exo4_opti/ShiTomasi.h
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
#ifndef SHI_TOMASI_H
|
||||||
|
#define SHI_TOMASI_H
|
||||||
|
|
||||||
|
typedef struct data_wrapper_t
|
||||||
|
{
|
||||||
|
float data;
|
||||||
|
int x;
|
||||||
|
int y;
|
||||||
|
} data_wrapper_t;
|
||||||
|
|
||||||
|
/// Draws a box at specfied location in the image. Used for markgin features.
|
||||||
|
void draw_features(data_wrapper_t *features, unsigned int count, float *image, int image_width, int image_height);
|
||||||
|
|
||||||
|
/// Find features in an image.
|
||||||
|
unsigned int find_features(data_wrapper_t *eigenvalues, int max_features, int image_width, int image_height, data_wrapper_t **features);
|
||||||
|
|
||||||
|
/// Defines comparison for data_wrapper_t. When used with qsort, it will result in a descending order array.
|
||||||
|
int sort_data_wrapper_value_desc(const void *a, const void *b);
|
||||||
|
|
||||||
|
// Sort data_wrapper_t types by their index (x first then y) in ascending order.
|
||||||
|
int sort_data_wrapper_index_asc(const void *a, const void *b);
|
||||||
|
|
||||||
|
/// Compute the eigenvalues of a pixel's Z matrix.
|
||||||
|
void compute_eigenvalues(float *hgrad, float *vgrad, int image_height, int image_width, int windowsize, data_wrapper_t *eigenvalues);
|
||||||
|
|
||||||
|
/// Calculate the minimum eigenvalue.
|
||||||
|
float min_eigenvalue(float a, float b, float c, float d);
|
||||||
|
|
||||||
|
/// Produce the images horizontal and vertical gradients.
|
||||||
|
void convolve(float *kernel, float *image, float *resultimage, int image_width, int image_height, int kernel_width, int kernel_height, int half);
|
||||||
|
|
||||||
|
/// Creates Gaussian kernel and Gaussian derivative kernel for image gradient/convolution procedure.
|
||||||
|
void gen_kernel(float *gkernel, float *dkernel, float sigma, int a, int w);
|
||||||
|
|
||||||
|
/// Prints out the program help menu.
|
||||||
|
void help(const char *err);
|
||||||
|
|
||||||
|
/// Print out all of the detected features.
|
||||||
|
void print_features(data_wrapper_t *features, unsigned int count);
|
||||||
|
|
||||||
|
#endif
|
BIN
A4/TP_A4/exo4_opti/ShiTomasi.o
Normal file
BIN
A4/TP_A4/exo4_opti/conv_eigen.png
Normal file
After Width: | Height: | Size: 39 KiB |
BIN
A4/TP_A4/exo4_opti/conv_eigen_img0.png
Normal file
After Width: | Height: | Size: 41 KiB |
BIN
A4/TP_A4/exo4_opti/conv_eigen_img1.png
Normal file
After Width: | Height: | Size: 37 KiB |
BIN
A4/TP_A4/exo4_opti/conv_eigen_img4.png
Normal file
After Width: | Height: | Size: 35 KiB |
BIN
A4/TP_A4/exo4_opti/conv_eigen_non_opti.png
Normal file
After Width: | Height: | Size: 30 KiB |
75
A4/TP_A4/exo4_opti/graph.py
Normal file
|
@ -0,0 +1,75 @@
|
||||||
|
import numpy as np
|
||||||
|
import re
|
||||||
|
from matplotlib import pyplot as plt
|
||||||
|
|
||||||
|
### Variation de W et E
|
||||||
|
|
||||||
|
# with open ('time.txt', 'r') as timing:
|
||||||
|
# text = timing.read()
|
||||||
|
|
||||||
|
# # extract the values using regular expression
|
||||||
|
# values = re.findall(r'\d+\.\d+|\d+', text)
|
||||||
|
|
||||||
|
# # convert values to int or float
|
||||||
|
# values = [float(value) if '.' in value else int(value) for value in values]
|
||||||
|
|
||||||
|
# result = np.reshape(values,(36,10))
|
||||||
|
# # print(result)
|
||||||
|
# # SEQ = result[0:6,3]
|
||||||
|
|
||||||
|
# result = np.delete(result, (0,1,4,5,6,7), 1)
|
||||||
|
|
||||||
|
|
||||||
|
# W1 = result[0:6,:]
|
||||||
|
# W2 = result[6:12,:]
|
||||||
|
# W5 = result[12:18,:]
|
||||||
|
# W10 = result[18:24,:]
|
||||||
|
# W15 = result[24:30,:]
|
||||||
|
# W20 = result[30:36,:]
|
||||||
|
|
||||||
|
# plt.figure()
|
||||||
|
# plt.plot(W1[:,1],W1[:,2]+W1[:,3],'+-')
|
||||||
|
# plt.plot(W2[:,1],W2[:,2]+W2[:,3],'+-')
|
||||||
|
# plt.plot(W5[:,1],W5[:,2]+W5[:,3],'+-')
|
||||||
|
# plt.plot(W10[:,1],W10[:,2]+W10[:,3],'+-')
|
||||||
|
# plt.plot(W15[:,1],W15[:,2]+W15[:,3],'+-')
|
||||||
|
# plt.plot(W20[:,1],W20[:,2]+W20[:,3],'+-')
|
||||||
|
|
||||||
|
# plt.legend(["WS = 1","WS = 2","WS = 5","WS = 10","WS = 15","WS = 20"])
|
||||||
|
# plt.xlabel("Coins")
|
||||||
|
# plt.ylabel("t (s)")
|
||||||
|
# plt.title("Convolution + Eigen pas opti")
|
||||||
|
# plt.show()
|
||||||
|
|
||||||
|
|
||||||
|
### CPP
|
||||||
|
|
||||||
|
with open ('CPP.txt', 'r') as timing:
|
||||||
|
text = timing.read()
|
||||||
|
|
||||||
|
# extract the values using regular expression
|
||||||
|
values = re.findall(r'\d+\.\d+|\d+', text)
|
||||||
|
|
||||||
|
# convert values to int or float
|
||||||
|
values = [float(value) if '.' in value else int(value) for value in values]
|
||||||
|
|
||||||
|
result = np.reshape(values,(12,10))
|
||||||
|
# print(result)
|
||||||
|
|
||||||
|
RES = result[:6,4:6]
|
||||||
|
X = [str(sub) for sub in RES]
|
||||||
|
|
||||||
|
result = np.delete(result, (0,1,4,5,6,7), 1)
|
||||||
|
|
||||||
|
OPT = result[0:6,2]+result[0:6,3]*1.1e9/(RES[:,0]*RES[:,1])
|
||||||
|
NOPT = result[6:12,2]+result[6:12,3]*1.1e9/(RES[:,0]*RES[:,1])
|
||||||
|
|
||||||
|
plt.figure()
|
||||||
|
plt.plot(X,OPT,'+-')
|
||||||
|
plt.plot(X,NOPT,'+-')
|
||||||
|
|
||||||
|
plt.legend(["Optimisé","Non optimisé"])
|
||||||
|
plt.xlabel("Résolution")
|
||||||
|
plt.ylabel("CPP")
|
||||||
|
plt.title("CPP en fonction des images")
|
||||||
|
plt.show()
|
77
A4/TP_A4/exo4_opti/image_io.c
Normal file
|
@ -0,0 +1,77 @@
|
||||||
|
|
||||||
|
#include "image_io.h"
|
||||||
|
#define STB_IMAGE_IMPLEMENTATION
|
||||||
|
#include "stb_image.h"
|
||||||
|
|
||||||
|
#define BUFFER 512
|
||||||
|
|
||||||
|
#define READ_IMAGE_TEMPLATE(T) \
|
||||||
|
{ \
|
||||||
|
int im_channels; \
|
||||||
|
unsigned char *data = stbi_load(name, im_width, im_height, &im_channels, 1); \
|
||||||
|
if (data == NULL) \
|
||||||
|
{ \
|
||||||
|
printf("ERROR: Cannot read %s\n", name); \
|
||||||
|
exit(0); \
|
||||||
|
} \
|
||||||
|
*image = malloc(sizeof(**image) * (*im_width) * (*im_height)); \
|
||||||
|
for (int i = 0; i < (*im_width) * (*im_height); ++i) \
|
||||||
|
(*image)[i] = (T)data[i]; \
|
||||||
|
stbi_image_free(data); \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define WRITE_IMAGE_TEMPLATE(T) \
|
||||||
|
{ \
|
||||||
|
unsigned char *temp_img = malloc(sizeof(unsigned char) * im_width * im_height); \
|
||||||
|
for (int i = 0; i < (im_width * im_height); i++) \
|
||||||
|
temp_img[i] = image[i]; \
|
||||||
|
write_imagec(name, temp_img, im_width, im_height); \
|
||||||
|
free(temp_img); \
|
||||||
|
}
|
||||||
|
|
||||||
|
void read_image(char *name, double **image, int *im_width, int *im_height)
|
||||||
|
{
|
||||||
|
READ_IMAGE_TEMPLATE(double)
|
||||||
|
}
|
||||||
|
|
||||||
|
void read_imagef(char *name, float **image, int *im_width, int *im_height)
|
||||||
|
{
|
||||||
|
READ_IMAGE_TEMPLATE(float)
|
||||||
|
}
|
||||||
|
|
||||||
|
void read_imagei(char *name, int **image, int *im_width, int *im_height)
|
||||||
|
{
|
||||||
|
READ_IMAGE_TEMPLATE(int)
|
||||||
|
}
|
||||||
|
|
||||||
|
void read_imagec(char *name, unsigned char **image, int *im_width, int *im_height)
|
||||||
|
{
|
||||||
|
READ_IMAGE_TEMPLATE(char)
|
||||||
|
}
|
||||||
|
|
||||||
|
void write_image(char *name, double *image, int im_width, int im_height)
|
||||||
|
{
|
||||||
|
WRITE_IMAGE_TEMPLATE(double)
|
||||||
|
}
|
||||||
|
|
||||||
|
void write_imagef(char *name, float *image, int im_width, int im_height)
|
||||||
|
{
|
||||||
|
WRITE_IMAGE_TEMPLATE(float)
|
||||||
|
}
|
||||||
|
|
||||||
|
void write_imagei(char *name, int *image, int im_width, int im_height)
|
||||||
|
{
|
||||||
|
WRITE_IMAGE_TEMPLATE(int)
|
||||||
|
}
|
||||||
|
|
||||||
|
void write_imagec(char *name, unsigned char *image, int im_width, int im_height)
|
||||||
|
{
|
||||||
|
FILE *fop;
|
||||||
|
int im_size = im_width * im_height;
|
||||||
|
|
||||||
|
fop = fopen(name, "w+");
|
||||||
|
fprintf(fop, "P5\n%d %d\n255\n", im_width, im_height);
|
||||||
|
fwrite(image, sizeof(unsigned char), im_size, fop);
|
||||||
|
|
||||||
|
fclose(fop);
|
||||||
|
}
|
11
A4/TP_A4/exo4_opti/image_io.h
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
#ifndef IMAGE_IO_H
|
||||||
|
#define IMAGE_IO_H
|
||||||
|
|
||||||
|
void read_image(char *name, double **image, int *im_width, int *im_height);
|
||||||
|
void read_imagef(char *name, float **image, int *im_width, int *im_height);
|
||||||
|
void read_imagec(char *name, unsigned char **image, int *im_width, int *im_height);
|
||||||
|
void write_image(char *name, double *image, int im_width, int im_height);
|
||||||
|
void write_imagef(char *name, float *image, int im_width, int im_height);
|
||||||
|
void write_imagec(char *name, unsigned char *image, int im_width, int im_height);
|
||||||
|
|
||||||
|
#endif
|
BIN
A4/TP_A4/exo4_opti/image_io.o
Normal file
BIN
A4/TP_A4/exo4_opti/input_images/000009.png
Normal file
After Width: | Height: | Size: 271 KiB |
BIN
A4/TP_A4/exo4_opti/input_images/img_1.jpg
Normal file
After Width: | Height: | Size: 2.5 MiB |
BIN
A4/TP_A4/exo4_opti/input_images/img_2.jpg
Normal file
After Width: | Height: | Size: 2.9 MiB |
BIN
A4/TP_A4/exo4_opti/input_images/img_3.jpg
Normal file
After Width: | Height: | Size: 1.4 MiB |
BIN
A4/TP_A4/exo4_opti/input_images/img_4.jpg
Normal file
After Width: | Height: | Size: 1.7 MiB |
BIN
A4/TP_A4/exo4_opti/input_images/img_5.jpg
Normal file
After Width: | Height: | Size: 740 KiB |
48
A4/TP_A4/exo4_opti/opti.txt
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
Eigen #pragma omp parallel for collapse(2) schedule(static,100)
|
||||||
|
-------------------------
|
||||||
|
Convolve // #pragma omp parallel for schedule(static,100)
|
||||||
|
detecting features for ./input_images/000009.png
|
||||||
|
sigma = 1.100, windowsize = 50, max_features = 10000
|
||||||
|
image_size: [1241 x 376] px
|
||||||
|
[gettimeofday] EigenValues Time 306.903992
|
||||||
|
2702 features detected
|
||||||
|
Convolution Time 0.012532
|
||||||
|
EigenValues Time 0.306904
|
||||||
|
|
||||||
|
Convolve sans rien
|
||||||
|
detecting features for ./input_images/000009.png
|
||||||
|
sigma = 1.100, windowsize = 50, max_features = 10000
|
||||||
|
image_size: [1241 x 376] px
|
||||||
|
[gettimeofday] EigenValues Time 327.713989
|
||||||
|
2702 features detected
|
||||||
|
Convolution Time 0.018599
|
||||||
|
EigenValues Time 0.327714
|
||||||
|
|
||||||
|
Convolve // #pragma omp parallel for schedule(static,50)
|
||||||
|
detecting features for ./input_images/000009.png
|
||||||
|
sigma = 1.100, windowsize = 50, max_features = 10000
|
||||||
|
image_size: [1241 x 376] px
|
||||||
|
[gettimeofday] EigenValues Time 296.431000
|
||||||
|
2702 features detected
|
||||||
|
Convolution Time 0.037112
|
||||||
|
EigenValues Time 0.296431
|
||||||
|
|
||||||
|
-------------------------
|
||||||
|
Convolve // #pragma omp parallel for schedule(static,200)
|
||||||
|
-------------------------
|
||||||
|
detecting features for ./input_images/000009.png
|
||||||
|
sigma = 1.100, windowsize = 50, max_features = 10000
|
||||||
|
image_size: [1241 x 376] px
|
||||||
|
[gettimeofday] EigenValues Time 307.218994
|
||||||
|
2702 features detected
|
||||||
|
Convolution Time 0.024083
|
||||||
|
EigenValues Time 0.307218
|
||||||
|
|
||||||
|
|
||||||
|
detecting features for ./input_images/000009.png
|
||||||
|
sigma = 1.100, windowsize = 50, max_features = 10000
|
||||||
|
image_size: [1241 x 376] px
|
||||||
|
[gettimeofday] EigenValues Time 306.039001
|
||||||
|
2702 features detected
|
||||||
|
Convolution Time 0.057235
|
||||||
|
EigenValues Time 0.306040
|
BIN
A4/TP_A4/exo4_opti/output_images/corners.pgm
Normal file
9
A4/TP_A4/exo4_opti/script.sh
Executable file
|
@ -0,0 +1,9 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
for s in 1 2 5 10 15 20
|
||||||
|
do
|
||||||
|
for f in 5 10 50 100 500 1000
|
||||||
|
do
|
||||||
|
./ShiTomasi ./input_images/img_4.jpg $s $f >> time_opti_img4.txt
|
||||||
|
done
|
||||||
|
done
|
8224
A4/TP_A4/exo4_opti/stb_image.h
Normal file
252
A4/TP_A4/exo4_opti/time.txt
Normal file
|
@ -0,0 +1,252 @@
|
||||||
|
detecting features for ./input_images/000009.png
|
||||||
|
sigma = 1.100, windowsize = 1, max_features = 5
|
||||||
|
image_size: [1241 x 376] px
|
||||||
|
[gettimeofday] EigenValues Time 78.111000
|
||||||
|
5 features detected
|
||||||
|
Convolution Time 0.071285
|
||||||
|
EigenValues Time 0.078110
|
||||||
|
detecting features for ./input_images/000009.png
|
||||||
|
sigma = 1.100, windowsize = 1, max_features = 10
|
||||||
|
image_size: [1241 x 376] px
|
||||||
|
[gettimeofday] EigenValues Time 80.944000
|
||||||
|
10 features detected
|
||||||
|
Convolution Time 0.073226
|
||||||
|
EigenValues Time 0.080944
|
||||||
|
detecting features for ./input_images/000009.png
|
||||||
|
sigma = 1.100, windowsize = 1, max_features = 50
|
||||||
|
image_size: [1241 x 376] px
|
||||||
|
[gettimeofday] EigenValues Time 72.806000
|
||||||
|
50 features detected
|
||||||
|
Convolution Time 0.071076
|
||||||
|
EigenValues Time 0.072805
|
||||||
|
detecting features for ./input_images/000009.png
|
||||||
|
sigma = 1.100, windowsize = 1, max_features = 100
|
||||||
|
image_size: [1241 x 376] px
|
||||||
|
[gettimeofday] EigenValues Time 76.814003
|
||||||
|
100 features detected
|
||||||
|
Convolution Time 0.074288
|
||||||
|
EigenValues Time 0.076813
|
||||||
|
detecting features for ./input_images/000009.png
|
||||||
|
sigma = 1.100, windowsize = 1, max_features = 500
|
||||||
|
image_size: [1241 x 376] px
|
||||||
|
[gettimeofday] EigenValues Time 74.902000
|
||||||
|
500 features detected
|
||||||
|
Convolution Time 0.073242
|
||||||
|
EigenValues Time 0.074902
|
||||||
|
detecting features for ./input_images/000009.png
|
||||||
|
sigma = 1.100, windowsize = 1, max_features = 1000
|
||||||
|
image_size: [1241 x 376] px
|
||||||
|
[gettimeofday] EigenValues Time 72.913002
|
||||||
|
1000 features detected
|
||||||
|
Convolution Time 0.077598
|
||||||
|
EigenValues Time 0.072913
|
||||||
|
detecting features for ./input_images/000009.png
|
||||||
|
sigma = 1.100, windowsize = 2, max_features = 5
|
||||||
|
image_size: [1241 x 376] px
|
||||||
|
[gettimeofday] EigenValues Time 80.535004
|
||||||
|
5 features detected
|
||||||
|
Convolution Time 0.071336
|
||||||
|
EigenValues Time 0.080535
|
||||||
|
detecting features for ./input_images/000009.png
|
||||||
|
sigma = 1.100, windowsize = 2, max_features = 10
|
||||||
|
image_size: [1241 x 376] px
|
||||||
|
[gettimeofday] EigenValues Time 82.468002
|
||||||
|
10 features detected
|
||||||
|
Convolution Time 0.071284
|
||||||
|
EigenValues Time 0.082467
|
||||||
|
detecting features for ./input_images/000009.png
|
||||||
|
sigma = 1.100, windowsize = 2, max_features = 50
|
||||||
|
image_size: [1241 x 376] px
|
||||||
|
[gettimeofday] EigenValues Time 87.601997
|
||||||
|
50 features detected
|
||||||
|
Convolution Time 0.079019
|
||||||
|
EigenValues Time 0.087602
|
||||||
|
detecting features for ./input_images/000009.png
|
||||||
|
sigma = 1.100, windowsize = 2, max_features = 100
|
||||||
|
image_size: [1241 x 376] px
|
||||||
|
[gettimeofday] EigenValues Time 84.942001
|
||||||
|
100 features detected
|
||||||
|
Convolution Time 0.078346
|
||||||
|
EigenValues Time 0.084942
|
||||||
|
detecting features for ./input_images/000009.png
|
||||||
|
sigma = 1.100, windowsize = 2, max_features = 500
|
||||||
|
image_size: [1241 x 376] px
|
||||||
|
[gettimeofday] EigenValues Time 80.504997
|
||||||
|
500 features detected
|
||||||
|
Convolution Time 0.071112
|
||||||
|
EigenValues Time 0.080505
|
||||||
|
detecting features for ./input_images/000009.png
|
||||||
|
sigma = 1.100, windowsize = 2, max_features = 1000
|
||||||
|
image_size: [1241 x 376] px
|
||||||
|
[gettimeofday] EigenValues Time 80.972000
|
||||||
|
1000 features detected
|
||||||
|
Convolution Time 0.071165
|
||||||
|
EigenValues Time 0.080972
|
||||||
|
detecting features for ./input_images/000009.png
|
||||||
|
sigma = 1.100, windowsize = 5, max_features = 5
|
||||||
|
image_size: [1241 x 376] px
|
||||||
|
[gettimeofday] EigenValues Time 130.117004
|
||||||
|
5 features detected
|
||||||
|
Convolution Time 0.071212
|
||||||
|
EigenValues Time 0.130117
|
||||||
|
detecting features for ./input_images/000009.png
|
||||||
|
sigma = 1.100, windowsize = 5, max_features = 10
|
||||||
|
image_size: [1241 x 376] px
|
||||||
|
[gettimeofday] EigenValues Time 130.608994
|
||||||
|
10 features detected
|
||||||
|
Convolution Time 0.071592
|
||||||
|
EigenValues Time 0.130609
|
||||||
|
detecting features for ./input_images/000009.png
|
||||||
|
sigma = 1.100, windowsize = 5, max_features = 50
|
||||||
|
image_size: [1241 x 376] px
|
||||||
|
[gettimeofday] EigenValues Time 133.570999
|
||||||
|
50 features detected
|
||||||
|
Convolution Time 0.072458
|
||||||
|
EigenValues Time 0.133570
|
||||||
|
detecting features for ./input_images/000009.png
|
||||||
|
sigma = 1.100, windowsize = 5, max_features = 100
|
||||||
|
image_size: [1241 x 376] px
|
||||||
|
[gettimeofday] EigenValues Time 130.069000
|
||||||
|
100 features detected
|
||||||
|
Convolution Time 0.071585
|
||||||
|
EigenValues Time 0.130069
|
||||||
|
detecting features for ./input_images/000009.png
|
||||||
|
sigma = 1.100, windowsize = 5, max_features = 500
|
||||||
|
image_size: [1241 x 376] px
|
||||||
|
[gettimeofday] EigenValues Time 131.382996
|
||||||
|
500 features detected
|
||||||
|
Convolution Time 0.071034
|
||||||
|
EigenValues Time 0.131383
|
||||||
|
detecting features for ./input_images/000009.png
|
||||||
|
sigma = 1.100, windowsize = 5, max_features = 1000
|
||||||
|
image_size: [1241 x 376] px
|
||||||
|
[gettimeofday] EigenValues Time 130.604996
|
||||||
|
1000 features detected
|
||||||
|
Convolution Time 0.071517
|
||||||
|
EigenValues Time 0.130605
|
||||||
|
detecting features for ./input_images/000009.png
|
||||||
|
sigma = 1.100, windowsize = 10, max_features = 5
|
||||||
|
image_size: [1241 x 376] px
|
||||||
|
[gettimeofday] EigenValues Time 310.023987
|
||||||
|
5 features detected
|
||||||
|
Convolution Time 0.072872
|
||||||
|
EigenValues Time 0.310024
|
||||||
|
detecting features for ./input_images/000009.png
|
||||||
|
sigma = 1.100, windowsize = 10, max_features = 10
|
||||||
|
image_size: [1241 x 376] px
|
||||||
|
[gettimeofday] EigenValues Time 312.074005
|
||||||
|
10 features detected
|
||||||
|
Convolution Time 0.073316
|
||||||
|
EigenValues Time 0.312074
|
||||||
|
detecting features for ./input_images/000009.png
|
||||||
|
sigma = 1.100, windowsize = 10, max_features = 50
|
||||||
|
image_size: [1241 x 376] px
|
||||||
|
[gettimeofday] EigenValues Time 323.491028
|
||||||
|
50 features detected
|
||||||
|
Convolution Time 0.073598
|
||||||
|
EigenValues Time 0.323491
|
||||||
|
detecting features for ./input_images/000009.png
|
||||||
|
sigma = 1.100, windowsize = 10, max_features = 100
|
||||||
|
image_size: [1241 x 376] px
|
||||||
|
[gettimeofday] EigenValues Time 312.666992
|
||||||
|
100 features detected
|
||||||
|
Convolution Time 0.079026
|
||||||
|
EigenValues Time 0.312667
|
||||||
|
detecting features for ./input_images/000009.png
|
||||||
|
sigma = 1.100, windowsize = 10, max_features = 500
|
||||||
|
image_size: [1241 x 376] px
|
||||||
|
[gettimeofday] EigenValues Time 306.220001
|
||||||
|
500 features detected
|
||||||
|
Convolution Time 0.071294
|
||||||
|
EigenValues Time 0.306220
|
||||||
|
detecting features for ./input_images/000009.png
|
||||||
|
sigma = 1.100, windowsize = 10, max_features = 1000
|
||||||
|
image_size: [1241 x 376] px
|
||||||
|
[gettimeofday] EigenValues Time 306.755981
|
||||||
|
1000 features detected
|
||||||
|
Convolution Time 0.071774
|
||||||
|
EigenValues Time 0.306757
|
||||||
|
detecting features for ./input_images/000009.png
|
||||||
|
sigma = 1.100, windowsize = 15, max_features = 5
|
||||||
|
image_size: [1241 x 376] px
|
||||||
|
[gettimeofday] EigenValues Time 585.828003
|
||||||
|
5 features detected
|
||||||
|
Convolution Time 0.071077
|
||||||
|
EigenValues Time 0.585827
|
||||||
|
detecting features for ./input_images/000009.png
|
||||||
|
sigma = 1.100, windowsize = 15, max_features = 10
|
||||||
|
image_size: [1241 x 376] px
|
||||||
|
[gettimeofday] EigenValues Time 586.400024
|
||||||
|
10 features detected
|
||||||
|
Convolution Time 0.071432
|
||||||
|
EigenValues Time 0.586399
|
||||||
|
detecting features for ./input_images/000009.png
|
||||||
|
sigma = 1.100, windowsize = 15, max_features = 50
|
||||||
|
image_size: [1241 x 376] px
|
||||||
|
[gettimeofday] EigenValues Time 585.309998
|
||||||
|
50 features detected
|
||||||
|
Convolution Time 0.071168
|
||||||
|
EigenValues Time 0.585310
|
||||||
|
detecting features for ./input_images/000009.png
|
||||||
|
sigma = 1.100, windowsize = 15, max_features = 100
|
||||||
|
image_size: [1241 x 376] px
|
||||||
|
[gettimeofday] EigenValues Time 584.059021
|
||||||
|
100 features detected
|
||||||
|
Convolution Time 0.071715
|
||||||
|
EigenValues Time 0.584059
|
||||||
|
detecting features for ./input_images/000009.png
|
||||||
|
sigma = 1.100, windowsize = 15, max_features = 500
|
||||||
|
image_size: [1241 x 376] px
|
||||||
|
[gettimeofday] EigenValues Time 584.741028
|
||||||
|
500 features detected
|
||||||
|
Convolution Time 0.071440
|
||||||
|
EigenValues Time 0.584741
|
||||||
|
detecting features for ./input_images/000009.png
|
||||||
|
sigma = 1.100, windowsize = 15, max_features = 1000
|
||||||
|
image_size: [1241 x 376] px
|
||||||
|
[gettimeofday] EigenValues Time 581.815979
|
||||||
|
1000 features detected
|
||||||
|
Convolution Time 0.071520
|
||||||
|
EigenValues Time 0.581816
|
||||||
|
detecting features for ./input_images/000009.png
|
||||||
|
sigma = 1.100, windowsize = 20, max_features = 5
|
||||||
|
image_size: [1241 x 376] px
|
||||||
|
[gettimeofday] EigenValues Time 1059.534058
|
||||||
|
5 features detected
|
||||||
|
Convolution Time 0.072195
|
||||||
|
EigenValues Time 1.059534
|
||||||
|
detecting features for ./input_images/000009.png
|
||||||
|
sigma = 1.100, windowsize = 20, max_features = 10
|
||||||
|
image_size: [1241 x 376] px
|
||||||
|
[gettimeofday] EigenValues Time 963.630005
|
||||||
|
10 features detected
|
||||||
|
Convolution Time 0.071242
|
||||||
|
EigenValues Time 0.963630
|
||||||
|
detecting features for ./input_images/000009.png
|
||||||
|
sigma = 1.100, windowsize = 20, max_features = 50
|
||||||
|
image_size: [1241 x 376] px
|
||||||
|
[gettimeofday] EigenValues Time 982.309998
|
||||||
|
50 features detected
|
||||||
|
Convolution Time 0.071566
|
||||||
|
EigenValues Time 0.982309
|
||||||
|
detecting features for ./input_images/000009.png
|
||||||
|
sigma = 1.100, windowsize = 20, max_features = 100
|
||||||
|
image_size: [1241 x 376] px
|
||||||
|
[gettimeofday] EigenValues Time 1015.593994
|
||||||
|
100 features detected
|
||||||
|
Convolution Time 0.070913
|
||||||
|
EigenValues Time 1.015593
|
||||||
|
detecting features for ./input_images/000009.png
|
||||||
|
sigma = 1.100, windowsize = 20, max_features = 500
|
||||||
|
image_size: [1241 x 376] px
|
||||||
|
[gettimeofday] EigenValues Time 987.187988
|
||||||
|
500 features detected
|
||||||
|
Convolution Time 0.070887
|
||||||
|
EigenValues Time 0.987187
|
||||||
|
detecting features for ./input_images/000009.png
|
||||||
|
sigma = 1.100, windowsize = 20, max_features = 1000
|
||||||
|
image_size: [1241 x 376] px
|
||||||
|
[gettimeofday] EigenValues Time 988.111023
|
||||||
|
1000 features detected
|
||||||
|
Convolution Time 0.072037
|
||||||
|
EigenValues Time 0.988112
|
252
A4/TP_A4/exo4_opti/time_opti_img1.txt
Normal file
|
@ -0,0 +1,252 @@
|
||||||
|
detecting features for ./input_images/img_1.jpg
|
||||||
|
sigma = 1.100, windowsize = 1, max_features = 5
|
||||||
|
image_size: [3282 x 5114] px
|
||||||
|
[gettimeofday] EigenValues Time 2035.822021
|
||||||
|
5 features detected
|
||||||
|
Convolution Time 0.743961
|
||||||
|
EigenValues Time 2.035822
|
||||||
|
detecting features for ./input_images/img_1.jpg
|
||||||
|
sigma = 1.100, windowsize = 1, max_features = 10
|
||||||
|
image_size: [3282 x 5114] px
|
||||||
|
[gettimeofday] EigenValues Time 1681.629028
|
||||||
|
10 features detected
|
||||||
|
Convolution Time 0.707745
|
||||||
|
EigenValues Time 1.681629
|
||||||
|
detecting features for ./input_images/img_1.jpg
|
||||||
|
sigma = 1.100, windowsize = 1, max_features = 50
|
||||||
|
image_size: [3282 x 5114] px
|
||||||
|
[gettimeofday] EigenValues Time 1685.898926
|
||||||
|
50 features detected
|
||||||
|
Convolution Time 0.694751
|
||||||
|
EigenValues Time 1.685899
|
||||||
|
detecting features for ./input_images/img_1.jpg
|
||||||
|
sigma = 1.100, windowsize = 1, max_features = 100
|
||||||
|
image_size: [3282 x 5114] px
|
||||||
|
[gettimeofday] EigenValues Time 2294.447998
|
||||||
|
100 features detected
|
||||||
|
Convolution Time 0.671624
|
||||||
|
EigenValues Time 2.294449
|
||||||
|
detecting features for ./input_images/img_1.jpg
|
||||||
|
sigma = 1.100, windowsize = 1, max_features = 500
|
||||||
|
image_size: [3282 x 5114] px
|
||||||
|
[gettimeofday] EigenValues Time 1678.113037
|
||||||
|
500 features detected
|
||||||
|
Convolution Time 0.677528
|
||||||
|
EigenValues Time 1.678113
|
||||||
|
detecting features for ./input_images/img_1.jpg
|
||||||
|
sigma = 1.100, windowsize = 1, max_features = 1000
|
||||||
|
image_size: [3282 x 5114] px
|
||||||
|
[gettimeofday] EigenValues Time 2151.630859
|
||||||
|
1000 features detected
|
||||||
|
Convolution Time 0.676732
|
||||||
|
EigenValues Time 2.151631
|
||||||
|
detecting features for ./input_images/img_1.jpg
|
||||||
|
sigma = 1.100, windowsize = 2, max_features = 5
|
||||||
|
image_size: [3282 x 5114] px
|
||||||
|
[gettimeofday] EigenValues Time 1132.209961
|
||||||
|
5 features detected
|
||||||
|
Convolution Time 0.718599
|
||||||
|
EigenValues Time 1.132210
|
||||||
|
detecting features for ./input_images/img_1.jpg
|
||||||
|
sigma = 1.100, windowsize = 2, max_features = 10
|
||||||
|
image_size: [3282 x 5114] px
|
||||||
|
[gettimeofday] EigenValues Time 2359.069092
|
||||||
|
10 features detected
|
||||||
|
Convolution Time 0.787626
|
||||||
|
EigenValues Time 2.359069
|
||||||
|
detecting features for ./input_images/img_1.jpg
|
||||||
|
sigma = 1.100, windowsize = 2, max_features = 50
|
||||||
|
image_size: [3282 x 5114] px
|
||||||
|
[gettimeofday] EigenValues Time 1647.644043
|
||||||
|
50 features detected
|
||||||
|
Convolution Time 0.684985
|
||||||
|
EigenValues Time 1.647644
|
||||||
|
detecting features for ./input_images/img_1.jpg
|
||||||
|
sigma = 1.100, windowsize = 2, max_features = 100
|
||||||
|
image_size: [3282 x 5114] px
|
||||||
|
[gettimeofday] EigenValues Time 1073.688965
|
||||||
|
100 features detected
|
||||||
|
Convolution Time 0.696173
|
||||||
|
EigenValues Time 1.073688
|
||||||
|
detecting features for ./input_images/img_1.jpg
|
||||||
|
sigma = 1.100, windowsize = 2, max_features = 500
|
||||||
|
image_size: [3282 x 5114] px
|
||||||
|
[gettimeofday] EigenValues Time 1103.389038
|
||||||
|
500 features detected
|
||||||
|
Convolution Time 0.701647
|
||||||
|
EigenValues Time 1.103390
|
||||||
|
detecting features for ./input_images/img_1.jpg
|
||||||
|
sigma = 1.100, windowsize = 2, max_features = 1000
|
||||||
|
image_size: [3282 x 5114] px
|
||||||
|
[gettimeofday] EigenValues Time 1183.239990
|
||||||
|
1000 features detected
|
||||||
|
Convolution Time 0.683521
|
||||||
|
EigenValues Time 1.183240
|
||||||
|
detecting features for ./input_images/img_1.jpg
|
||||||
|
sigma = 1.100, windowsize = 5, max_features = 5
|
||||||
|
image_size: [3282 x 5114] px
|
||||||
|
[gettimeofday] EigenValues Time 1262.051025
|
||||||
|
5 features detected
|
||||||
|
Convolution Time 0.690352
|
||||||
|
EigenValues Time 1.262051
|
||||||
|
detecting features for ./input_images/img_1.jpg
|
||||||
|
sigma = 1.100, windowsize = 5, max_features = 10
|
||||||
|
image_size: [3282 x 5114] px
|
||||||
|
[gettimeofday] EigenValues Time 2421.749023
|
||||||
|
10 features detected
|
||||||
|
Convolution Time 0.732796
|
||||||
|
EigenValues Time 2.421749
|
||||||
|
detecting features for ./input_images/img_1.jpg
|
||||||
|
sigma = 1.100, windowsize = 5, max_features = 50
|
||||||
|
image_size: [3282 x 5114] px
|
||||||
|
[gettimeofday] EigenValues Time 1284.166016
|
||||||
|
50 features detected
|
||||||
|
Convolution Time 0.695343
|
||||||
|
EigenValues Time 1.284166
|
||||||
|
detecting features for ./input_images/img_1.jpg
|
||||||
|
sigma = 1.100, windowsize = 5, max_features = 100
|
||||||
|
image_size: [3282 x 5114] px
|
||||||
|
[gettimeofday] EigenValues Time 2460.414062
|
||||||
|
100 features detected
|
||||||
|
Convolution Time 0.713780
|
||||||
|
EigenValues Time 2.460414
|
||||||
|
detecting features for ./input_images/img_1.jpg
|
||||||
|
sigma = 1.100, windowsize = 5, max_features = 500
|
||||||
|
image_size: [3282 x 5114] px
|
||||||
|
[gettimeofday] EigenValues Time 1168.463989
|
||||||
|
500 features detected
|
||||||
|
Convolution Time 0.744367
|
||||||
|
EigenValues Time 1.168464
|
||||||
|
detecting features for ./input_images/img_1.jpg
|
||||||
|
sigma = 1.100, windowsize = 5, max_features = 1000
|
||||||
|
image_size: [3282 x 5114] px
|
||||||
|
[gettimeofday] EigenValues Time 1681.278076
|
||||||
|
1000 features detected
|
||||||
|
Convolution Time 0.694903
|
||||||
|
EigenValues Time 1.681278
|
||||||
|
detecting features for ./input_images/img_1.jpg
|
||||||
|
sigma = 1.100, windowsize = 10, max_features = 5
|
||||||
|
image_size: [3282 x 5114] px
|
||||||
|
[gettimeofday] EigenValues Time 2089.882080
|
||||||
|
5 features detected
|
||||||
|
Convolution Time 0.709452
|
||||||
|
EigenValues Time 2.089882
|
||||||
|
detecting features for ./input_images/img_1.jpg
|
||||||
|
sigma = 1.100, windowsize = 10, max_features = 10
|
||||||
|
image_size: [3282 x 5114] px
|
||||||
|
[gettimeofday] EigenValues Time 2231.855957
|
||||||
|
10 features detected
|
||||||
|
Convolution Time 0.688733
|
||||||
|
EigenValues Time 2.231856
|
||||||
|
detecting features for ./input_images/img_1.jpg
|
||||||
|
sigma = 1.100, windowsize = 10, max_features = 50
|
||||||
|
image_size: [3282 x 5114] px
|
||||||
|
[gettimeofday] EigenValues Time 2240.367920
|
||||||
|
50 features detected
|
||||||
|
Convolution Time 0.743735
|
||||||
|
EigenValues Time 2.240368
|
||||||
|
detecting features for ./input_images/img_1.jpg
|
||||||
|
sigma = 1.100, windowsize = 10, max_features = 100
|
||||||
|
image_size: [3282 x 5114] px
|
||||||
|
[gettimeofday] EigenValues Time 2052.343018
|
||||||
|
100 features detected
|
||||||
|
Convolution Time 0.718175
|
||||||
|
EigenValues Time 2.052343
|
||||||
|
detecting features for ./input_images/img_1.jpg
|
||||||
|
sigma = 1.100, windowsize = 10, max_features = 500
|
||||||
|
image_size: [3282 x 5114] px
|
||||||
|
[gettimeofday] EigenValues Time 2114.470947
|
||||||
|
500 features detected
|
||||||
|
Convolution Time 0.711941
|
||||||
|
EigenValues Time 2.114471
|
||||||
|
detecting features for ./input_images/img_1.jpg
|
||||||
|
sigma = 1.100, windowsize = 10, max_features = 1000
|
||||||
|
image_size: [3282 x 5114] px
|
||||||
|
[gettimeofday] EigenValues Time 2238.066895
|
||||||
|
1000 features detected
|
||||||
|
Convolution Time 0.715894
|
||||||
|
EigenValues Time 2.238067
|
||||||
|
detecting features for ./input_images/img_1.jpg
|
||||||
|
sigma = 1.100, windowsize = 15, max_features = 5
|
||||||
|
image_size: [3282 x 5114] px
|
||||||
|
[gettimeofday] EigenValues Time 4002.260986
|
||||||
|
5 features detected
|
||||||
|
Convolution Time 0.709723
|
||||||
|
EigenValues Time 4.002261
|
||||||
|
detecting features for ./input_images/img_1.jpg
|
||||||
|
sigma = 1.100, windowsize = 15, max_features = 10
|
||||||
|
image_size: [3282 x 5114] px
|
||||||
|
[gettimeofday] EigenValues Time 4062.758057
|
||||||
|
10 features detected
|
||||||
|
Convolution Time 0.684714
|
||||||
|
EigenValues Time 4.062757
|
||||||
|
detecting features for ./input_images/img_1.jpg
|
||||||
|
sigma = 1.100, windowsize = 15, max_features = 50
|
||||||
|
image_size: [3282 x 5114] px
|
||||||
|
[gettimeofday] EigenValues Time 4009.768066
|
||||||
|
50 features detected
|
||||||
|
Convolution Time 0.707542
|
||||||
|
EigenValues Time 4.009768
|
||||||
|
detecting features for ./input_images/img_1.jpg
|
||||||
|
sigma = 1.100, windowsize = 15, max_features = 100
|
||||||
|
image_size: [3282 x 5114] px
|
||||||
|
[gettimeofday] EigenValues Time 3917.907959
|
||||||
|
100 features detected
|
||||||
|
Convolution Time 0.729426
|
||||||
|
EigenValues Time 3.917908
|
||||||
|
detecting features for ./input_images/img_1.jpg
|
||||||
|
sigma = 1.100, windowsize = 15, max_features = 500
|
||||||
|
image_size: [3282 x 5114] px
|
||||||
|
[gettimeofday] EigenValues Time 3936.593018
|
||||||
|
500 features detected
|
||||||
|
Convolution Time 0.709724
|
||||||
|
EigenValues Time 3.936593
|
||||||
|
detecting features for ./input_images/img_1.jpg
|
||||||
|
sigma = 1.100, windowsize = 15, max_features = 1000
|
||||||
|
image_size: [3282 x 5114] px
|
||||||
|
[gettimeofday] EigenValues Time 4052.041992
|
||||||
|
1000 features detected
|
||||||
|
Convolution Time 0.673883
|
||||||
|
EigenValues Time 4.052041
|
||||||
|
detecting features for ./input_images/img_1.jpg
|
||||||
|
sigma = 1.100, windowsize = 20, max_features = 5
|
||||||
|
image_size: [3282 x 5114] px
|
||||||
|
[gettimeofday] EigenValues Time 6904.195801
|
||||||
|
5 features detected
|
||||||
|
Convolution Time 0.679914
|
||||||
|
EigenValues Time 6.904195
|
||||||
|
detecting features for ./input_images/img_1.jpg
|
||||||
|
sigma = 1.100, windowsize = 20, max_features = 10
|
||||||
|
image_size: [3282 x 5114] px
|
||||||
|
[gettimeofday] EigenValues Time 6609.250000
|
||||||
|
10 features detected
|
||||||
|
Convolution Time 0.707525
|
||||||
|
EigenValues Time 6.609250
|
||||||
|
detecting features for ./input_images/img_1.jpg
|
||||||
|
sigma = 1.100, windowsize = 20, max_features = 50
|
||||||
|
image_size: [3282 x 5114] px
|
||||||
|
[gettimeofday] EigenValues Time 6599.893066
|
||||||
|
50 features detected
|
||||||
|
Convolution Time 0.706646
|
||||||
|
EigenValues Time 6.599893
|
||||||
|
detecting features for ./input_images/img_1.jpg
|
||||||
|
sigma = 1.100, windowsize = 20, max_features = 100
|
||||||
|
image_size: [3282 x 5114] px
|
||||||
|
[gettimeofday] EigenValues Time 6917.371094
|
||||||
|
100 features detected
|
||||||
|
Convolution Time 0.707266
|
||||||
|
EigenValues Time 6.917372
|
||||||
|
detecting features for ./input_images/img_1.jpg
|
||||||
|
sigma = 1.100, windowsize = 20, max_features = 500
|
||||||
|
image_size: [3282 x 5114] px
|
||||||
|
[gettimeofday] EigenValues Time 6863.350098
|
||||||
|
500 features detected
|
||||||
|
Convolution Time 0.715015
|
||||||
|
EigenValues Time 6.863350
|
||||||
|
detecting features for ./input_images/img_1.jpg
|
||||||
|
sigma = 1.100, windowsize = 20, max_features = 1000
|
||||||
|
image_size: [3282 x 5114] px
|
||||||
|
[gettimeofday] EigenValues Time 6598.800781
|
||||||
|
1000 features detected
|
||||||
|
Convolution Time 0.685112
|
||||||
|
EigenValues Time 6.598801
|
252
A4/TP_A4/exo4_opti/time_opti_img4.txt
Normal file
|
@ -0,0 +1,252 @@
|
||||||
|
detecting features for ./input_images/img_4.jpg
|
||||||
|
sigma = 1.100, windowsize = 1, max_features = 5
|
||||||
|
image_size: [3999 x 3999] px
|
||||||
|
[gettimeofday] EigenValues Time 1155.407959
|
||||||
|
5 features detected
|
||||||
|
Convolution Time 0.735920
|
||||||
|
EigenValues Time 1.155408
|
||||||
|
detecting features for ./input_images/img_4.jpg
|
||||||
|
sigma = 1.100, windowsize = 1, max_features = 10
|
||||||
|
image_size: [3999 x 3999] px
|
||||||
|
[gettimeofday] EigenValues Time 2209.542969
|
||||||
|
10 features detected
|
||||||
|
Convolution Time 0.617611
|
||||||
|
EigenValues Time 2.209543
|
||||||
|
detecting features for ./input_images/img_4.jpg
|
||||||
|
sigma = 1.100, windowsize = 1, max_features = 50
|
||||||
|
image_size: [3999 x 3999] px
|
||||||
|
[gettimeofday] EigenValues Time 2115.429932
|
||||||
|
50 features detected
|
||||||
|
Convolution Time 0.661218
|
||||||
|
EigenValues Time 2.115431
|
||||||
|
detecting features for ./input_images/img_4.jpg
|
||||||
|
sigma = 1.100, windowsize = 1, max_features = 100
|
||||||
|
image_size: [3999 x 3999] px
|
||||||
|
[gettimeofday] EigenValues Time 2141.304932
|
||||||
|
100 features detected
|
||||||
|
Convolution Time 0.625168
|
||||||
|
EigenValues Time 2.141304
|
||||||
|
detecting features for ./input_images/img_4.jpg
|
||||||
|
sigma = 1.100, windowsize = 1, max_features = 500
|
||||||
|
image_size: [3999 x 3999] px
|
||||||
|
[gettimeofday] EigenValues Time 1641.547974
|
||||||
|
500 features detected
|
||||||
|
Convolution Time 0.623114
|
||||||
|
EigenValues Time 1.641547
|
||||||
|
detecting features for ./input_images/img_4.jpg
|
||||||
|
sigma = 1.100, windowsize = 1, max_features = 1000
|
||||||
|
image_size: [3999 x 3999] px
|
||||||
|
[gettimeofday] EigenValues Time 1058.590942
|
||||||
|
1000 features detected
|
||||||
|
Convolution Time 0.626698
|
||||||
|
EigenValues Time 1.058591
|
||||||
|
detecting features for ./input_images/img_4.jpg
|
||||||
|
sigma = 1.100, windowsize = 2, max_features = 5
|
||||||
|
image_size: [3999 x 3999] px
|
||||||
|
[gettimeofday] EigenValues Time 1120.083984
|
||||||
|
5 features detected
|
||||||
|
Convolution Time 0.631218
|
||||||
|
EigenValues Time 1.120084
|
||||||
|
detecting features for ./input_images/img_4.jpg
|
||||||
|
sigma = 1.100, windowsize = 2, max_features = 10
|
||||||
|
image_size: [3999 x 3999] px
|
||||||
|
[gettimeofday] EigenValues Time 1578.343018
|
||||||
|
10 features detected
|
||||||
|
Convolution Time 0.634375
|
||||||
|
EigenValues Time 1.578344
|
||||||
|
detecting features for ./input_images/img_4.jpg
|
||||||
|
sigma = 1.100, windowsize = 2, max_features = 50
|
||||||
|
image_size: [3999 x 3999] px
|
||||||
|
[gettimeofday] EigenValues Time 1587.696045
|
||||||
|
50 features detected
|
||||||
|
Convolution Time 0.661663
|
||||||
|
EigenValues Time 1.587696
|
||||||
|
detecting features for ./input_images/img_4.jpg
|
||||||
|
sigma = 1.100, windowsize = 2, max_features = 100
|
||||||
|
image_size: [3999 x 3999] px
|
||||||
|
[gettimeofday] EigenValues Time 1089.848022
|
||||||
|
100 features detected
|
||||||
|
Convolution Time 0.632955
|
||||||
|
EigenValues Time 1.089848
|
||||||
|
detecting features for ./input_images/img_4.jpg
|
||||||
|
sigma = 1.100, windowsize = 2, max_features = 500
|
||||||
|
image_size: [3999 x 3999] px
|
||||||
|
[gettimeofday] EigenValues Time 1117.678955
|
||||||
|
500 features detected
|
||||||
|
Convolution Time 0.629164
|
||||||
|
EigenValues Time 1.117679
|
||||||
|
detecting features for ./input_images/img_4.jpg
|
||||||
|
sigma = 1.100, windowsize = 2, max_features = 1000
|
||||||
|
image_size: [3999 x 3999] px
|
||||||
|
[gettimeofday] EigenValues Time 1625.005005
|
||||||
|
1000 features detected
|
||||||
|
Convolution Time 0.661020
|
||||||
|
EigenValues Time 1.625006
|
||||||
|
detecting features for ./input_images/img_4.jpg
|
||||||
|
sigma = 1.100, windowsize = 5, max_features = 5
|
||||||
|
image_size: [3999 x 3999] px
|
||||||
|
[gettimeofday] EigenValues Time 1147.598022
|
||||||
|
5 features detected
|
||||||
|
Convolution Time 0.626361
|
||||||
|
EigenValues Time 1.147599
|
||||||
|
detecting features for ./input_images/img_4.jpg
|
||||||
|
sigma = 1.100, windowsize = 5, max_features = 10
|
||||||
|
image_size: [3999 x 3999] px
|
||||||
|
[gettimeofday] EigenValues Time 2099.885010
|
||||||
|
10 features detected
|
||||||
|
Convolution Time 0.632201
|
||||||
|
EigenValues Time 2.099884
|
||||||
|
detecting features for ./input_images/img_4.jpg
|
||||||
|
sigma = 1.100, windowsize = 5, max_features = 50
|
||||||
|
image_size: [3999 x 3999] px
|
||||||
|
[gettimeofday] EigenValues Time 2346.951904
|
||||||
|
50 features detected
|
||||||
|
Convolution Time 0.615773
|
||||||
|
EigenValues Time 2.346952
|
||||||
|
detecting features for ./input_images/img_4.jpg
|
||||||
|
sigma = 1.100, windowsize = 5, max_features = 100
|
||||||
|
image_size: [3999 x 3999] px
|
||||||
|
[gettimeofday] EigenValues Time 2178.379883
|
||||||
|
100 features detected
|
||||||
|
Convolution Time 0.640185
|
||||||
|
EigenValues Time 2.178380
|
||||||
|
detecting features for ./input_images/img_4.jpg
|
||||||
|
sigma = 1.100, windowsize = 5, max_features = 500
|
||||||
|
image_size: [3999 x 3999] px
|
||||||
|
[gettimeofday] EigenValues Time 2249.246094
|
||||||
|
500 features detected
|
||||||
|
Convolution Time 0.620186
|
||||||
|
EigenValues Time 2.249246
|
||||||
|
detecting features for ./input_images/img_4.jpg
|
||||||
|
sigma = 1.100, windowsize = 5, max_features = 1000
|
||||||
|
image_size: [3999 x 3999] px
|
||||||
|
[gettimeofday] EigenValues Time 1252.310059
|
||||||
|
1000 features detected
|
||||||
|
Convolution Time 0.623934
|
||||||
|
EigenValues Time 1.252310
|
||||||
|
detecting features for ./input_images/img_4.jpg
|
||||||
|
sigma = 1.100, windowsize = 10, max_features = 5
|
||||||
|
image_size: [3999 x 3999] px
|
||||||
|
[gettimeofday] EigenValues Time 1980.151978
|
||||||
|
5 features detected
|
||||||
|
Convolution Time 0.648045
|
||||||
|
EigenValues Time 1.980152
|
||||||
|
detecting features for ./input_images/img_4.jpg
|
||||||
|
sigma = 1.100, windowsize = 10, max_features = 10
|
||||||
|
image_size: [3999 x 3999] px
|
||||||
|
[gettimeofday] EigenValues Time 1949.417969
|
||||||
|
10 features detected
|
||||||
|
Convolution Time 0.626475
|
||||||
|
EigenValues Time 1.949418
|
||||||
|
detecting features for ./input_images/img_4.jpg
|
||||||
|
sigma = 1.100, windowsize = 10, max_features = 50
|
||||||
|
image_size: [3999 x 3999] px
|
||||||
|
[gettimeofday] EigenValues Time 2000.031982
|
||||||
|
50 features detected
|
||||||
|
Convolution Time 0.620183
|
||||||
|
EigenValues Time 2.000032
|
||||||
|
detecting features for ./input_images/img_4.jpg
|
||||||
|
sigma = 1.100, windowsize = 10, max_features = 100
|
||||||
|
image_size: [3999 x 3999] px
|
||||||
|
[gettimeofday] EigenValues Time 1910.555054
|
||||||
|
100 features detected
|
||||||
|
Convolution Time 0.651491
|
||||||
|
EigenValues Time 1.910555
|
||||||
|
detecting features for ./input_images/img_4.jpg
|
||||||
|
sigma = 1.100, windowsize = 10, max_features = 500
|
||||||
|
image_size: [3999 x 3999] px
|
||||||
|
[gettimeofday] EigenValues Time 1991.965942
|
||||||
|
500 features detected
|
||||||
|
Convolution Time 0.640609
|
||||||
|
EigenValues Time 1.991965
|
||||||
|
detecting features for ./input_images/img_4.jpg
|
||||||
|
sigma = 1.100, windowsize = 10, max_features = 1000
|
||||||
|
image_size: [3999 x 3999] px
|
||||||
|
[gettimeofday] EigenValues Time 1924.969971
|
||||||
|
1000 features detected
|
||||||
|
Convolution Time 0.645218
|
||||||
|
EigenValues Time 1.924971
|
||||||
|
detecting features for ./input_images/img_4.jpg
|
||||||
|
sigma = 1.100, windowsize = 15, max_features = 5
|
||||||
|
image_size: [3999 x 3999] px
|
||||||
|
[gettimeofday] EigenValues Time 3823.891113
|
||||||
|
5 features detected
|
||||||
|
Convolution Time 0.639121
|
||||||
|
EigenValues Time 3.823891
|
||||||
|
detecting features for ./input_images/img_4.jpg
|
||||||
|
sigma = 1.100, windowsize = 15, max_features = 10
|
||||||
|
image_size: [3999 x 3999] px
|
||||||
|
[gettimeofday] EigenValues Time 3777.537109
|
||||||
|
10 features detected
|
||||||
|
Convolution Time 0.628942
|
||||||
|
EigenValues Time 3.777537
|
||||||
|
detecting features for ./input_images/img_4.jpg
|
||||||
|
sigma = 1.100, windowsize = 15, max_features = 50
|
||||||
|
image_size: [3999 x 3999] px
|
||||||
|
[gettimeofday] EigenValues Time 3737.520996
|
||||||
|
50 features detected
|
||||||
|
Convolution Time 0.630005
|
||||||
|
EigenValues Time 3.737521
|
||||||
|
detecting features for ./input_images/img_4.jpg
|
||||||
|
sigma = 1.100, windowsize = 15, max_features = 100
|
||||||
|
image_size: [3999 x 3999] px
|
||||||
|
[gettimeofday] EigenValues Time 3869.402100
|
||||||
|
100 features detected
|
||||||
|
Convolution Time 0.628104
|
||||||
|
EigenValues Time 3.869401
|
||||||
|
detecting features for ./input_images/img_4.jpg
|
||||||
|
sigma = 1.100, windowsize = 15, max_features = 500
|
||||||
|
image_size: [3999 x 3999] px
|
||||||
|
[gettimeofday] EigenValues Time 3872.395996
|
||||||
|
500 features detected
|
||||||
|
Convolution Time 0.653086
|
||||||
|
EigenValues Time 3.872396
|
||||||
|
detecting features for ./input_images/img_4.jpg
|
||||||
|
sigma = 1.100, windowsize = 15, max_features = 1000
|
||||||
|
image_size: [3999 x 3999] px
|
||||||
|
[gettimeofday] EigenValues Time 3690.702148
|
||||||
|
1000 features detected
|
||||||
|
Convolution Time 0.627411
|
||||||
|
EigenValues Time 3.690702
|
||||||
|
detecting features for ./input_images/img_4.jpg
|
||||||
|
sigma = 1.100, windowsize = 20, max_features = 5
|
||||||
|
image_size: [3999 x 3999] px
|
||||||
|
[gettimeofday] EigenValues Time 6369.575195
|
||||||
|
5 features detected
|
||||||
|
Convolution Time 0.616158
|
||||||
|
EigenValues Time 6.369575
|
||||||
|
detecting features for ./input_images/img_4.jpg
|
||||||
|
sigma = 1.100, windowsize = 20, max_features = 10
|
||||||
|
image_size: [3999 x 3999] px
|
||||||
|
[gettimeofday] EigenValues Time 6290.769043
|
||||||
|
10 features detected
|
||||||
|
Convolution Time 0.651428
|
||||||
|
EigenValues Time 6.290769
|
||||||
|
detecting features for ./input_images/img_4.jpg
|
||||||
|
sigma = 1.100, windowsize = 20, max_features = 50
|
||||||
|
image_size: [3999 x 3999] px
|
||||||
|
[gettimeofday] EigenValues Time 6509.250000
|
||||||
|
50 features detected
|
||||||
|
Convolution Time 0.633383
|
||||||
|
EigenValues Time 6.509250
|
||||||
|
detecting features for ./input_images/img_4.jpg
|
||||||
|
sigma = 1.100, windowsize = 20, max_features = 100
|
||||||
|
image_size: [3999 x 3999] px
|
||||||
|
[gettimeofday] EigenValues Time 6335.139160
|
||||||
|
100 features detected
|
||||||
|
Convolution Time 0.660637
|
||||||
|
EigenValues Time 6.335139
|
||||||
|
detecting features for ./input_images/img_4.jpg
|
||||||
|
sigma = 1.100, windowsize = 20, max_features = 500
|
||||||
|
image_size: [3999 x 3999] px
|
||||||
|
[gettimeofday] EigenValues Time 6370.258789
|
||||||
|
500 features detected
|
||||||
|
Convolution Time 0.622169
|
||||||
|
EigenValues Time 6.370259
|
||||||
|
detecting features for ./input_images/img_4.jpg
|
||||||
|
sigma = 1.100, windowsize = 20, max_features = 1000
|
||||||
|
image_size: [3999 x 3999] px
|
||||||
|
[gettimeofday] EigenValues Time 6391.324219
|
||||||
|
1000 features detected
|
||||||
|
Convolution Time 0.645403
|
||||||
|
EigenValues Time 6.391324
|