Algorithms for Jigsaw Puzzles. Christian Skaarup Hansen (s002013)



Relaterede dokumenter
Algorithms for Jigsaw Puzzles. Christian Skaarup Hansen (s002013)

Jigsaw Box - Vejledning - Android

Algoritme til løsning af geometriske puslespil ud fra længdematch og backtracking

Brugervejledning Scan2Text fra Dictus (Windows PC)

Backtracking algorithms for solving jigsaw puzzles, based on spatial properties. Christian Skaarup Hansen (s002013)

Tegninger ved skriftlig prøve i fysik A, stx Om tegning på pdf-filer med Adobe Acrobat Reader og andre programmer

Indhold. Download driver Find version af Windows Hent drivers til Windows Udpak driver... 6

IT på Social og Sundheds Skolen Fyn Juni 2019

Punktlektion: Lasercutter

Matematik interne delprøve 09 Tesselering

- sådan undgår du fejl i din tryksag

Tegninger ved skriftlig prøve i fysik A, htx

PhotoStory. Et fedt program til præsentation af digitale billeder. Version: August 2012

Beskæring af et billede med Vegas Pro

Overenskomsten som e-bog

Guide til din computer

Undervisning Version 1.0 redigering af billeder til hjemmesiden

Gem dine dokumenter i BON s Content Management System (CMS)

DM i Autodesk Inventor Opgave #1

Mandelbrot smartphone applikation

Vejledning til brug af FirstClass

Programmer til fjernelse af uønskede elementer fra foto

Brugervejledning til Stratasys 3Dprinting

Udforskningsopgaver. Hvor lang kan stangen højst blive, hvis den består af 4 metalstænger?

Billeder og tegninger i Writer Indhold

Computerens - Anatomi

DM507 Algoritmer og datastrukturer

Import af rekursivt (parent-child) hierarki i Palo

Kom godt i gang med I-bogen

Matematik i indskolingen - de mindste børn

Gratis kontorpakke til din tablet

Arbejde med 3D track motion

Malwarebytes Guide AF VK DATA APS. VK DATA APS Bønderbyvej 21, 6270 Tønder

Regneark LibreOffice. Øvelseshæfte. Version: September 2013

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer

Læs med CD-ORD Gem en lydfil. 5. Download af CD-ORD, Billedlæser, Skan Read og ekstra stemmer.

Mircobit Kursus Lektion 1

IrfanView. Et overblik over et stærkt billedbehandlingsværktøj. Version: August 2012

Guide til stregkoder, der kan scannes hver gang

Vejledning til at ligge billeder ind på Jerslev gruppes hjemmeside.

Poster design. Meningen med en poster

IT-GUIDE TIL UDFORMNING AF MARGINSPØRGSMÅL OG

Brugervejledning. ClaroRead fra Dictus -PC

Perspektiverende Datalogi Klassiske Algoritmer

Manual til dropbox på ipad

Matematikken i kunstig intelligens Opgaver om koordinerende robotter LØSNINGER

Matematikken i kunstig intelligens Opgaver om koordinerende robotter

Fable Kom godt i gang

Invarianter og kombinatoriske beviser

Vejledning til Photo Story 3

GRAFISK WORKFLOW. 1 Grafisk workflow

STOFA VEJLEDNING INSTALLATIONSVEJLEDNING TIL STOFA SAFESURF

SkanRead hjælp. SkanRead 1.0. Mikro Værkstedet A/S

Blåt Medlem. Vejledning i kontingentopkrævning med ved brug af Word eller Open Office

Perspektiverende Datalogikursus

Her ser i hvorledes man nemt kan installere en række nyttige programmer, uden at få andet end selv programmet installeret. på

QR-koder. Kan det bruges i undervisningen? Version: August 2012

Projektbeskrivelse. IT B og Programmering C. Klasse 3.4. Louis Drejer, Markus Duus og Mikkel Jensen. Fra

SÅDAN LAVER JEG 100 FEDE PRODUKTBILLEDER PÅ LIDT OVER 7 TIMER.

Scanning af foto side 1

Adobe Acrobat Professional 11. ISBN nr.:

GoTalkNow. Beskrivelse:

Få dine billeder til at tale

Åben Power Point... Side 2. Ny præsentation... Side 2. Dias layout... Side 2. Temaer... Side 3. Gem dit eget tema... Side 3. Diasmaster...

AgroSoft A/S AgroSync

Projekt 9.5 Racefordomme i USA og Simpsons paradoks (B og A)

Klasse 1.4 Michael Jokil

Se Billeder i Picasa.

MANUAL. Siteloom CMS

Computerundervisning

Grise Nøgle Etui Carmen Jorissen creacarmen.wordpress.com

Mobil Print/Scan vejledning til Brother iprint&scan (Windows Phone )

En lille vejledning i at bruge Paint Win 98 og Win XP Indhold

BBC micro:bit Buggy som følger en linje

Outlook 2010 opsætning

Velkommen til 1. omgang af IT for let øvede

Værd at lære.. Forside Orientering. - en vejledning i fremstilling af skolekort. Dansk Orienterings-Forbund

DET KONGELIGE BIBLIOTEK NATIONALBIBLIOTEK OG KØBENHAVNS UNIVERSITETS- BIBLIOTEK. Indhold

Julehjerter med motiver

The GIMP. The GIMP til windows kan hentes fra siden: win.sourceforge.net/stable.html

Arbejde med Vegas Pro digital skiltnings værktøjer

Rapport på Kommunikation IT projekt

Brugervejledning til Canon IR2200i og IR3300i på IT-Universitetet

Perspektiverende Datalogikursus

Kom godt i gang med Fable-robotten

Installer DesignPro. DesignPro I Side 1

DM22 2. Obligatoriske Opgave. Prolog. Soma Pyramide. Navn: Jacob Christiansen CPR: Login: moffe42

Deling i Windows. Netteknik 1

Bilag 1 til BR styrmandsmappe. Tastevejledning til Birkerød Roklubs computersystem

INDHOLDSFORTEGNELSE. INDLEDNING... 7 Kristian Langborg-Hansen. KAPITEL ET... 9 I gang med App Inventor. KAPITEL TO...

Tilbagemelding/kommentar Test af tilgængelighed og brugervenlighed i WebPatient

Measuring ability and aptitude. Forberedelsesguide

underviser mappe under koder til apps. OBS! I dette eksempel er der anvendt et andet brugernavn end det du skal bruge.

Manual til AVG Antivirus

InterWalk brugermanual. Specifikt til iphone og ipod touch

FOTO strategi Gem Udvælg Rediger Gem

Billeder på hjemmeside

Modul 8: Clouds (Lagring af filer)

Transkript:

Algorithms for Jigsaw Puzzles Christian Skaarup Hansen (s002013) 15. oktober 2006

2 Dette projekt handler om at lave en algoritme, der kan samle et 3D puslespil. Algoritmen kan bruges til folk som skal have lavet en knust genstand, f.eks folk der laver udgravninger. Dette 3D puslespil, som er skapt ved naturens hjælp eller ved uheld, er et meget geometrisk puslespil, så for at det hele ikke skal blive for komplekst, vil algroritmen i første omgang blive fremstillet i 2D. Hvis der bliver tid til det vil den så blive udvidet til 3D. Da der skal kigges på algoritmen til at lægge et 2D puslespil, er det en udemærket at teste algorimen på et alminelig 2D pulsespil. Skal algoritmen bygge på den skal det dog være muligt at udvide med en ekstra dimension. Det vil sige at de løsninger til algoritneb, som bliver ikke må være bundet til en form for puslespil. For at bevise at algoritmen ikke skal være bundet, skal den testes på et rigtigt geometisk puslespil. Skal man skabe et geometisk puslespil kan man blot klippe et billede i nogle stykker. Derefter scanner man billedet ind på computeren og åbner programmet, som indeholder algoritmen. Udover at systemet skal have en algoritme til at ligge geometiske puslespil skal det også kunne finde brikkerne. Så der skal være en lille del til billedeanalyse til at støde ind i de scannede brikker. Brikkerne bliver ikke scannet ind sådan så alt ligger ens, så derfor er man nødt til at fremstille systemet sådan, at det kan rotere brikkerne om deres egen akse, når de skal analyseres. Opmålingen af brikkerne må ikke være for kompleks, da det søgetre man skal bruge skal kunne søge hurtigt igennem alle brikkerne. Og da alle brikker skal roteres for at finde et macth, kan det gå hen og give lang søgetid. Her til sidst kommer en opsummering af systemet. Det resultat, som skal fremkomme er en algoritme, som skal kunne samle et 2D geometisk puslespil og med visse udvidelser skal algoritmen kunne tage en tredje dimmension med. Udover algoritmen skal systemet også kunne lave billedeanalyse på brikkerne og kunne roterer dem efter behov. For at at brugeren kan finde mulige fejl skal det være muligt at følge med på skærmen i, hvordan brikkerne bliver lagt og hvilke brikker, der bliver analyseret. I denne sammenhæng skal man kunne få vist et diagram, som viser hvilke brikker der skal ligge hvor.

Indhold 1 Intodotion(2) 5 1.1 Problem stilling.......................... 5 1.2 Udviklings miljø......................... 5 2 Teori(24) 6 2.1 Alminelig puslespil(4)...................... 7 2.1.1 Hvordan ligge man det?(1)............... 7 2.1.2 Metode til analys af brikker(3)............. 8 2.2 Teori til billede analyse(5).................... 10 2.2.1 Banalyse(1)........................ 10 2.2.2 Banalyse(2)........................ 10 2.2.3 Banalyse(2)........................ 10 2.3 Teori om søgetræet (5)...................... 11 2.3.1 søgetræ(1)......................... 11 2.3.2 søgetræ(2)......................... 11 2.3.3 søgetræ(2)......................... 11 2.4 Teori til Algoritmen(10)...................... 12 2.4.1 Brikker(1)......................... 12 2.4.2 Brikker(3)......................... 12 2.4.3 Brikker(3)......................... 12 2.4.4 Brikker(3)......................... 12 3 Implematering(7) 13 3.1 Implemtering af Søgetræ(2)................... 13 3.2 Implemtering af Algoritmen(5)................. 13 4 Test(4) 14 4.1 Brikke analyse(1)......................... 14 4.2 Test Algoritme(3)......................... 14 5 Refarater(8) 15 5.1 Artikel(2).............................. 15 5.2 Artikel(2).............................. 15 5.3 Artikel(2).............................. 15

4 INDHOLD 5.4 Artikel(2).............................. 15 6 Konklusion(2-3) 16 6.1 Udvidelse(1)............................ 16

Kapitel 1 Intodotion(2) I dette kapitel... 1.1 Problem stilling 1.2 Udviklings miljø

Kapitel 2 Teori(24) I dette kapitel...

2.1. ALMINELIG PUSLESPIL(4) 7 2.1 Alminelig puslespil(4) Her i dette afsnit vil der ville set på hvordan et normalt puslespil bliver lagt uden computens hjælpe, for at se hvilken metoder den menneskelig hjerne gør. Ud over det vil det blive kigge på en analyse over de brikker som der skal bruges til at test systemet i starten med. 2.1.1 Hvordan ligge man det?(1) For at få et bedre indblik hvordan man samler i puslespil vil der i dette afsint blive kigge på hvordan man samler et alminelig puslespil uden hjælp fra computen. Metoderne er tage ud fra en person (Christian S. Hansen) måde at lave en puslespil, der for er det måske ikke metoder som alle ville bruge. Der bliver ser på nogle af disse metode at de kan være gode og kan måske overføges til den algoritme som skal samle et geometisik-pulsespil sidste ende. I denne version til at ligge et pulsespil, er det første man gøre at finde alle de brikker som der skal bruges til kanterne. Disse brikker meget nemmer at genkende at der er altid en side som der er lige, der er dog 4 brikker som hvor der to af siderne som er lige og det er hjørne brikkerne. Når alle kant og hjørnebrikkerne er sorter fra kan man begynde at ligge kanten, nu kigge man ikke så meget efter fasongen mere men nu er det så farve nyanse og motig som man kigge efter når man ligge brikkerne. Efter alle brikkerne til kanten er blive lagt, så begynder man at sorter brikkerne ud i motiver, himel og omgivelser. Efter sortering gå man igen man at lave motiverne, der efter omgivelserne og til sidst det kedelig del som er himel. Under vej der er ikke blive kigge så nuragt på brikkernes fasong anden end om der har være indhag og tappe. Ved himel skal der dog ses på hele fasongen af brikkerne da himel brikkerne i mange tilfælde har samme farve nyragse, så for at nemmest at samle den del af puslespillet skal man se på formerne af brikkerne side. Disse brikker hvor siderne skal mod hinanden skal formerne bevæge sig på samme mod. Nogle af disse metoder kan bruge til algoritmen, dog vil metoden hvor der bilver set på farve og motiv ikke blive bruge da algoritmen skal samle geometisk-puslespil. Så det bliver mere henefter den metode som der bliver bruge når himelen skal samles, da man der er ligeglad med hvordan farven på brikken ser ud og man er mere intarser i fasongen af brikken.

8 KAPITEL 2. TEORI(24) 2.1.2 Metode til analys af brikker(3) Nå algoritmen skal teste skal der bruges et almindelig pulsespil til at starte med. Det bliver et lille puslespil på 35 brikker, og får at der ikke skal være brikke som der er ens i udformning, skal det lave en analyse af brikkerne. Denne analyse som der skal lave af brikker skal laves for at søgre der ikke findes flere brikker som er samme fasong. Da algoritmen i første omgang ikke ser efter farver vil det komme til give nogle problemer for algoritmen at samle puslespillet. For at være sikke på der ikke er to eller flere brikker som er ens, scannes alle brikker ind og et analyse program tester op mod hinanden. Når der skal lave analyse af de brikkerne som skal bruges til at teste algoritmen, skal der starte med at brikkerne bliver scanne ind i computeren så analyse programmet har nogle billeder af brikkerne til at arbejde med. Analyse programmet tag og bruger nogle filter så programmer kan få afskilt brikker fra baggrunden. Uddybene forklaring af analyse programmet Det førse analysen kommer til at lave er at få gemt alt information om fromerne af brikkerne. Dette gøre ved at lave billede analyse på de ind scanne brikker, så for at gøre det lidt nemmer at lave billede analysen så lave man scaningen med en fast farve som baggrunds farve. Alle brikkerne i denne analyse er blive scanne ind med en grøn baggrund, denne grønne farve findes ikke i brikkene i store mingter, så nu er det nemt at udlukke brikker fra baggunden. På Figur 2.1 kan man se på det første billede som det ser ud når man scanner det og det anden billede som det ser ud når man har tage og skifte den grønne ud med sort og brikker ned ud med hvidt. Figur 2.1: Billede af brikkerne efter scanning og efter første filter

2.1. ALMINELIG PUSLESPIL(4) 9 Efter det første filter er brikkerne afbillede hvidt på sort, dog er der en man fejl i billede i form at størg og store støvkorn, disse fejl skal fjennes før man kan finde brikkerne i billede. Dette gøre ved en at bruge Morphological Operations fra OpenCV, det gør at alle de små fejl forsvinder. Her under på Figur 2.2 kan man se når hvis man samliger det med billede to i Figur 2.1 kan man se der er næsten ikke fejl tilbage. Der bliver snakke mere om Morphological Operations i afsnitte om Billede analyse. - skal jeg det? Figur 2.2: Billede af brikkerne efter scanning og efter første filter Da man ikke er intersert i farven på brikkerne men kun formen af brikken så køres analysen i stor/hvid for at forenkel analyse arbejde. -Snakke om hvordan testene skal lave og hvordan man skal kunne se information -Rotason og miden af brikkerne og hvordan man finde midten af brikken

10 KAPITEL 2. TEORI(24) 2.2 Teori til billede analyse(5) 2.2.1 Banalyse(1) 2.2.2 Banalyse(2) 2.2.3 Banalyse(2)

2.3. TEORI OM SØGETRÆET (5) 11 2.3 Teori om søgetræet (5) 2.3.1 søgetræ(1) 2.3.2 søgetræ(2) 2.3.3 søgetræ(2)

12 KAPITEL 2. TEORI(24) 2.4 Teori til Algoritmen(10) 2.4.1 Brikker(1) 2.4.2 Brikker(3) 2.4.3 Brikker(3) 2.4.4 Brikker(3)

Kapitel 3 Implematering(7) I dette kapitel... 3.1 Implemtering af Søgetræ(2) 3.2 Implemtering af Algoritmen(5)

Kapitel 4 Test(4) I dette kapitel... 4.1 Brikke analyse(1) 4.2 Test Algoritme(3)

Kapitel 5 Refarater(8) I dette kapitel... 5.1 Artikel(2) 5.2 Artikel(2) 5.3 Artikel(2) 5.4 Artikel(2)

Kapitel 6 Konklusion(2-3) I dette kapitel... 6.1 Udvidelse(1)

Litteratur [1] Jens Michael Carstensen (Ed.), Image analysis, vision and computer graphics, 19 August 2002. [2] Kris Jamsa, C++, 1999. [3] Jeff Prosise, Programming Windows with MCF secend Edition, 1999. [4] Robert Lafore, Object-Oriented Programming in C++, 1998. [5] Steve Pelikan, Free Code, http://math.uc.edu/ pelikan/code/code.html [6] Microsoft, MSDN library, http://msdn.microsoft.com/library/default.asp [7] David Young, STEREOSCOPIC VISION AND PERSPEC- TIVE PROJECTION, http://www.cogs.susx.ac.uk/users/davidy/teachvision/vision5.html [8] Anthony Baraff, Fast Binary File Reading with C# - The Code Project - C# Programming, 28 Jun 2005 http://www.codeproject.com/csharp/fastbinaryfileinput.asp [9] Jarrod Pereira, Read and Write structures to files with dot net, 10 Aug 2005 http://www.codeproject.com/useritems/readwritestructstobinfile.asp

CD-oversigt Der skal være en CD-oversigt...