you are expanding upon the software you designed in task

Post New Homework

Learning Outcome 1: Understand algorithm efficiency in order to select and implement the most appropriate for a given task

Learning Outcome 2: Evaluate patterns and paradigms appropriate for specific tasks

Assignment Tasks

The assignment has been split into two parts:

1. Encoding: required to encode an image with a piece of given text

2. Decoding: required to decode an encoded image to extract the text

You are expected to build a piece of software that enables the user to encode a given image with a piece of text. The text to be encoded will be supplied by the user (i.e. it can be inserted via the command line). Once the image has been successfully encoded with the text, a method to decode the image to retrieve the text will also be required.

Task 1: Encoding an Image with Text
For this task you will need to encode an image with text. You are required to use the tools and techniques that have been taught in this module,
i.e. OpenCV for image handling etc. The end-user will have the option to insert the filename and extension for an image of their choice, alongside with the text they would like to encode within the image.

For example, the user may want to use to the filename cat.png, therefore, they will have an option to enter the filename in software you design (verifying that it is a valid image file). The end-user will then be asked what text they would like to encode. Your terminal window may look something like this:
$ Image Filename (with extension): cat.png
$ Encoded Text: I like cats.
Once these details have been passed through, the software will encode the text within the image file and create a new image file, with the suffix _encoded, i.e. cat_encoded.png.
The whole purpose of this task is that the resulting image looks exactly the same as the input image, i.e. there is no visible changes can be seen in the image.

Task 2: Decoding the Image
For this task, you are expanding upon the software you designed in task one and add a feature to decode the encoded image. The new feature should take the image path of the previously encoded image (should be entered via the terminal by an end-user) and then extract the text that was coded within it.
The extracted text will be displayed inside the terminal window, similar to the example below:
$ Extracted Text: I like cats.

Task 3: Documentation

The documentation aspect of this task has been split into two parts: user and developer documentation.
The user documentation will be concerned with clear instructions on how to use the software, along with any module requirements that are needed to run or compile the software, this will be created in the README.md file.

The developer documentation will be concerned with an explanation of the functionality (this will be provided in the form of docstrings in the source-code), along with information pertaining to how a developer may extend the piece of software.

Task 4: Testing
The purpose of this task will build upon the work you have done in tasks one and two. For each method implemented, you are expected to write a test case to ensure it is working as expected.

Note: It will be expected that the unit testing will be provided in a separate class file.

Task 5: Version Control
The purpose of this task is to ensure that you are developing the tool iteratively and collaboratively using relevant version control features, such as forking, cloning and merging.

For your submission, you are to include a URL to the University GitHub service repository along with the commit tag you want marking. Note: When you submit the GitHub repository link, ensure that your repository has been set to private and that you addCroft as collaborators. You must also use the 5062CEM organization on GitHub.

Task 6: Submission Guidelines
You will be expected to follow the submission guidelines, as outlined in the document below. Essentially, you are required to follow these rules:

1. Page One: Consists of a GitHub URL to the repository of your source-code 2. For each source-code file you have (filename.py), you need to provide:

1. A single page, with the name of the file

2. A single (or multiple) page(s) with the source-code in that file

3. The Python code file(s) must be submitted, the screenshots will not be accepted.

Attachment:- Individual Programming.rar

Post New Homework
Captcha

Looking tutor’s service for getting help in UK studies or college assignments? Order Now