Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit

CS413/CS933 Coursework 2022-2023

Jigsaw

The aim of the coursework is to use image analysis methods to automatically solve a jigsaw puzzle.

Attempt all parts, writing python code which will take the given input image(s) and generate output images automatically. The code must use only standard python libraries: e.g. numpy, PIL, opencv, skimage, sklearn, and any code and examples given in the module lab tutorials.

The data files required for this coursework can be downloaded from the module resources page.

Part 1

Given the image of the partially complete jigsaw (image named partially-complete) which has 9 pieces missing and the images of the missing pieces (named missing-pieces-1 and    missing-pieces-2), the aim of this part is to complete the jigsaw.

(a) Generate an image of the completed jigsaw using the axis-aligned missing pieces from image missing-pieces-1.

(b) Generate an image of the completed jigsaw using the jigsaw pieces from image missing- pieces-2. If you like, you may use images taken from missing-pieces-1 to help you solve this.

Part 2

Given images of all 48 pieces of the jigsaw from images pieces-1, pieces-2, and pieces-3, for any given example piece from these images, identify its neighbouring pieces (i.e. those others which connect with it). Note that not all pieces have 4 connecting neighbours!

To demonstrate your method works, you should show the example piece and images of its neighbours (they don't need be shown fitted together).

Part 3

Given images of all the pieces from pieces-1, pieces-2 and pieces-3, automatically complete the jigsaw puzzle, generating a single, complete image.

Part 4

Given images of all the pieces from pieces-4, pieces-5 and pieces-6, generate a completed jigsaw image. You may use any of the data given to you to help solve this part, however, the completed jigsaw must only use pixel values sourced from the images pieces-4, pieces-5 and pieces-6.


Submission of Code and Report

Code: for each part submit a Jupyter notebook named: part-1.ipynb, part-2.ipynb, part-3.ipynb, part-4.ipynb.  The code should read data from a directory specified by the string variable data_dir.

Do not submit the coursework data files provided.  You may submit your own python files   (*.py) which contain clasess/functions which are re-used in the three notebooks. Any        intermediate files you wish to make should be stored in a named subdirectory using a string variable work_dir. All code should be zipped into a single archive called coursework.zip.

All code should be well documented and the steps to run the notebooks should be clear. You may wish to use markdown cells as well as code cells to explain your code. The code      should be tested to run without errors on the DCS machines and not require the installation of other libraries or python code.  We will run and test each submission.

Report : Submit a report which describes your code and methods. It should not exceed 1250 words in length. You may use this to present and discuss the results of your methods. The    report should use 1in margins on all sides, minimum 12-point text, formatted in single column and single spaced text. You should give the total number of words used at the end  of the document used and submit it as a PDF. Please do not exceed the word-length. Any      reports not in the correct format will not be marked.

Tabula: You should submit both a ZIP of your code and the PDF of your report before the submission deadline. Late submissions will incur a 5% per day penalty.