diff --git a/compendium/modules/w13-assignment-imageprocessing.tex b/compendium/modules/w13-assignment-imageprocessing.tex index fc3f9a57b..351b554c6 100644 --- a/compendium/modules/w13-assignment-imageprocessing.tex +++ b/compendium/modules/w13-assignment-imageprocessing.tex @@ -67,8 +67,8 @@ \subsection{Uppgiften} /** Adds a filter to the FilterList */ def addFilter(filter: ImageFilter): Unit = ??? -/** Applies all the filters on the given Image and draws it in SimpleWindow */ -def applyFilters(image: Image, sw: SimpleWindow): Unit = ??? +/** Applies all the filters on the given Image and draws it in a PixelWindow */ +def applyFilters(image: Image, w: PixelWindow): Unit = ??? \end{ScalaSpec} \begin{ScalaSpec}{FilterChooser} @@ -129,7 +129,7 @@ \subsection{Uppgiften} \begin{Code} val im = new Image(ImageUI.getImage) \end{Code} -Använd \code{SimpleWindow} samt \code{image}-attributet från \code{Image}-objektet för att visa bilden. +Använd \code{PixelWindow} samt \code{image}-attributet från \code{Image}-objektet för att visa bilden. \Task \textbf{Inverteringsfilter.} Skriv en klass \code{InvertFilter} som inverterar en bild dvs skapar en ''negativ'' kopia av bilden. Ljusa färger ska alltså bli mörka och mörka färger ska bli ljusa. Fundera över vad som kan menas med en inverterad eller negativ kopia: de nya RGB-värdena är inte ett dividerat med de gamla värdena (då skulle de nya värdena kunna bli flyttal) och inte de gamla värdena med ombytt tecken (då skulle de nya värdena bli negativa). @@ -195,7 +195,7 @@ \subsection{Uppgiften} \end{pmatrix} \end{displaymath} -Det kan vara intressant att prova med andra värden än 4 i mitten av faltningsmatrisen. Med värdet 0 får man en större utjämning eftersom man då inte alls tar hänsyn till den aktuella pixelns värde. Mata in detta värde i Parameter-rutan. +Det kan vara intressant att prova med andra värden än 4 i mitten av faltningsmatrisen. Med värdet 0 får man en större utjämning eftersom man då inte alls tar hänsyn till den aktuella pixelns värde. Låt användaren mata in argument för mittvärdet via terminalen. Anmärkning: det kan ibland vara svårt att se någon skillnad mellan den filtrerade bilden och originalbilden. Om man vill ha en riktigt suddig bild så måste man använda en större matris som faltningskärna. @@ -325,4 +325,4 @@ \subsection{Frivilliga extrauppgifter} \end{enumerate} Skriv en klass \code{ContrastFilter} som implementerar algoritmen. I katalogen \emph{images} kan bilden \emph{moon.jpg} vara lämplig att testa, eftersom den har låg kontrast. Anmärkning: om \code{cutOff} sätts = 0 så får man samma resultat av denna filtrering som man får av \code{GrayScaleFilter}. Detta kan man se genom att studera interpolationsformeln. -\Task \textbf{Eget filter.} Skapa ett eget filter som utnyttjar att \code{apply}-metoden tar emot en array av värden. Till exempel så kan du skicka in en array med fem värden där de två första värdena representerar ett intesitetsintervall och de tre sista värdena representerar röd-, grön- och blåkomponenterna till en färg som ska stoppas in där intensiteten hamnar utanför det givna intervallet. Ett annat alternativ kan vara att använda sig av metoder i \code{SimpleWindow} för att välja specifika pixlar på originalbilden som sedan kan användas för att manipulera bilden i filtrets \code{apply}-metod. Valet är ditt! +\Task \textbf{Eget filter.} Skapa ett eget filter som utnyttjar att \code{apply}-metoden tar emot en array av värden. Till exempel så kan du skicka in en array med fem värden där de två första värdena representerar ett intesitetsintervall och de tre sista värdena representerar röd-, grön- och blåkomponenterna till en färg som ska stoppas in där intensiteten hamnar utanför det givna intervallet. Ett annat alternativ kan vara att låta användaren välja specifika pixlar på originalbilden som sedan kan användas för att manipulera bilden i filtrets \code{apply}-metod. Valet är ditt!