Pipeline

  • From: Fabio Brea <breolo@xxxxxxxxxx>
  • To: "ingsw3@xxxxxxxxxxxxx" <ingsw3@xxxxxxxxxxxxx>
  • Date: Sat, 2 Nov 2013 14:00:03 +0100

Pare che in qualche modo la discussione stia convergendo ad un punto comune. 
Direi ora che sarebbe meglio definire per bene tutte le interfacce e poi 
possiamo postarle su svn ok?Allora, come scritto da Simone sul gruppo le nostre 
interfacce si dividono essenzialmente in:
-IFilters-IImage-IImageFiltered-ICoinRecognizer-ICoin
Vediamole nel dettaglio:
IFilters contiene i filtri che verranno applicati all'immagine. Essenzialmente 
penso che conveniamo tutti sull'usare in sequenza: Sobel, Thresholding, Closing 
e ExtractBorder. Aggiungo ,come convenuto dagli altri gruppi, che bisogna 
operare anche un ridimensionamento dell'immagine, quindi metterei un metodo 
Resize all'interno di IFilters. Se volessimo potremmo creare un'interfaccia per 
ogni filtro, ma credo che averli tutti all'interno di IFilters renda meglio e 
sia più semplice e immediato da usare. All'interno di IFilters(ciò mi porta a 
chiedere se non dovremmo fare un'interfaccia a parte) metterei anche dei 
metodi, che ritornano booleani, per riconoscere se l'immagine è nel formato 
corretto. Definiamo così una specie di immagine standard ideale a cui ridurci 
ogni qual volta ci vengono date le foto.
IImage contiene altezza, larghezza dell'immagine, più:     Tre array (uno a 
canale) per i valori di ogni canale in ogni elemento     Un array unico di 
oggetti a tre parametri per i canaliDobbiamo scegliere quale dei due usare. 
Insieme a questo dobbiamo decidere che tipo di array sono, int, 
short,bytebuffer.
IImageFiltered come diceva Paolo, dovrebbe essere un sottocaso di IImage, 
quindi direi di toglierla, se siamo tutti d'accordo. Per il bianco e nero 
usiamo i tre canali di IImage settati opportunamente.
ICoinRecognizer contiene il metodo di ricerca delle monete e si salva una lista 
delle possibili monete in un array di Coin
ICoin è l'interfaccia della singola moneta: contiene centro, assi e probabilità 
che sia effettivamente una moneta. I metodi sono quelli nel branch
Altra interfaccia (o metodi(?)) che abbiamo definito, ma non messo, sono 
l'acquisizione dell'immagine da galleria o da fotocamera. Potrebbero essere 
metodi della classe Image, ditemi voi.
@Author: direi di mantenere Gruppo3 come autore di una classe, in quanto 
dobbiamo identificarci come gruppo e non come singolo, direi di mantenere 
questa idea. Lo dico perché ho visto le classi/interfacce degli altri che come 
autore hanno il nome dell'elemento del gruppo. A me personalmente non piace 
questo approccio.
Ultima cosa, dopo essere riusciti a fare tutto questo, potremmo anche 
implementare il fatto di prendere la foto dal web, come per esempio quando si 
setta l'immagine di un gruppo su whattsapp. Ditemi che ne pensate(di tutto), 
sperando che non sia tl;dr                                       

Other related posts: