This commit is contained in:
hiGepi 2023-02-12 23:49:07 +01:00
parent f01933bb49
commit 7402058ff1
39 changed files with 9787 additions and 0 deletions

Binary file not shown.

View 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

Binary file not shown.

Binary file not shown.

Binary file not shown.

View 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
View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

View 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

View 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

Binary file not shown.

View 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(&current_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");
}

View 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

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

View 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()

View 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);
}

View 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

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 271 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 740 KiB

View 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

Binary file not shown.

9
A4/TP_A4/exo4_opti/script.sh Executable file
View 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

File diff suppressed because it is too large Load diff

252
A4/TP_A4/exo4_opti/time.txt Normal file
View 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

View 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

View 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

BIN
A4/_SETI_A4_OpenMP.pdf Normal file

Binary file not shown.

BIN
A4/_SETI_A4_TP_GPU.pdf Normal file

Binary file not shown.