Lisa’s Status Report for April 16, 2022

This week I continued to work on the display function that I had started to work on last week (it takes in a parsed SVG file and converts the information in each line of the file into editable elements on the whiteboard). The main setback that I had to work with this week was dealing with an unexpected variable in each line of the SVG file (labeled with “transform”, which indicates that the line needs to be transformed by a specific value in the x or y direction). I also had to deal with adjusting the values to fit within the proportions of the whiteboard using a ratio between the width and height noted in the SVG file and that of the whiteboard display in the GUI.

I was able to complete this, which completes the integration of the SVG parser with the whiteboard display function. In the coming week, I will test this more to make sure it completely works with all types of lines and multiple lines in the input image. Right now, it makes all lines of a certain width, but next week I’ll try to have the lines on the whiteboard match the relative widths of the lines in the drawing.

I’ll also keep working on adding the translation feature for the lines, and starting doing some research into how to scale the lines. So far, I am on schedule.

Team Status Report for April 16, 2022

The most significant risks are not being able to get the SVG parser completed in time since that’s going to be an important part of the project as we need to be able to translate and resize the parts on the screen. We’re working on that and are going to have two people working on that to make sure that we can get it done but we need to be able to get obtain the piece of paper from the picture first before it works.

We had a change that there was no longer a need to add a feature that allows users to specify which other users they’re sending the image to instead of just sending it to everyone at once. We decided to cut it since there was no elegant way to implement it with our current implementation of everything else. This wasn’t a very important part of our project though as it wasn’t even on the design report.

We are really close to being able to obtain the piece of paper from the image and from there we should be able to get the SVG parser working.

Denise’s Status Report for April 16

This week I worked on implementing a cropping feature to remove the background of the image captured by the camera such that we only vectorize the diagram. My approach was to greyscale the image, apply another filter to make the image black and white, and apply a morphological erosion and dilation to remove noise. After that we will apply the openCV border detection to find the largest contour, fill it, and then use that as a mask to isolate the image.

Currently our approach works however the mask generated is a little too sensitive to the lighting and the hand holding up the paper as shown in the images below. This is likely because we’re using a binary filter to convert the image to black and white that results in very jagged contours. We hope to remedy this by fitting a bounding box around the contour and then filling the bounding box instead of the contour to generate our mask. This is still currently a work in progress.

Left: Original photo;    Right: generated mask

     

I am a little behind schedule but I should be able to wrap this up and get back on track next week. I hope to finish the image cropping and then will help Lisa out with the SVG transformations, and new SVG file generation.

Ronald’s Status Report for April 16, 2022

This week I attempted working on having the interface allow for users to send vectors to specific people in the room instead of always sending the vector to everyone and having it so that when you receive a vector you can see what it is first before accepting it. We decided against being able to send to specific users as there was no elegant way of implementing it other than having the user type out the names of everyone he did want to send it to but that was too prone to user error.

I think that we are still on schedule.

Next week i hope to clean up the interface and make it easier for a first time user to be able to use as right now if any step of the process is done wrong the application will just crash, i.e. if you type in the wrong access code and hit join it won’t say wrong access code the app will just crash. And other things similar to that.

Ronald’s Status Report for April 9, 2022

This week I was able to complete having users send actual vectors to each other and having them be displayed on each other’s screens when they arrive. I thought this would be a simple task but there were a lot of issues with encoding the messages correctly so that the server could handle sending them and there were also issues with file size so I had to compress the vectors as well before sending them.

Our schedule had to be changed slightly but I think that we are all still on track to complete this on time.

This week I hope to add a function that allows users to send the vectors to only certain users instead of always sending it to everyone. And also I hope to add a function where the user can see the image that they receive before they put it onto their whiteboard as currently the once received the vector gets placed onto the whiteboard immediately.

 

Team Status Report for April 9, 2022

Currently, the most significant risk remains similar to that of last week’s, which is the method that we use to display the different components of the SVG file on the whiteboard such that we can also be able to edit them. Our current solution for that is to parse each line of the SVG file into either a line or polygon, and then use a PyGUI library to display the line or polygon onto the whiteboard, adjusted for proportions.

A change that we had to make was that we want to be able to edit out the background whenever a user holds up a piece of paper up to the camera, so that the background doesn’t get vectorized and added to the SVG file. No additional costs will be incurred because of this added feature.

We are on track. We were able to make good progress on converting the SVG file into editable components and should be able to complete that next week. We were also able to get sending an SVG through the GUI working and will work on the receiver code in the coming week. Next week we also hope to fully integrate our SVG parser with code to display objects on the whiteboard, and also make some progress on eliminating the background when a user holds up a drawing for the app to vectorize.

 

Lisa’s Status Report for April 9, 2022

This week I implemented function that took a parsed SVG file (which Denise wrote the code for) and drew lines on the whiteboard. The function takes in a list that consists of the line endpoints and also parses the parsed SVG file to obtain the width and height of the image by extracting the values from the second line of the SVG file. I also wrote code that simply displays the vectorized image on the whiteboard for now, but would like to replace it with code that allows translation of the elements (and also only displays lines and polygons).

We had to modify the schedule a bit for now, which we discussed during the demo on Monday. Next week, I hope to complete integrating the SVG parser with the code for creating translatable and scalable elements on the whiteboard.

Denise’s Status Report for 04/09/2022

This week I implemented an SVG parser to parse through an SVG file line by line and extract the endpoints of the path in order to produce straight lines. I then modified this feature by having it parse through all the points within a path and extracting only the points that produce an angle of less than 100 degrees such that points that form obtuse angles with their neighbors are removed. This method helps reduce the complexity of the shapes by removing points while also enabling us to produce polygons as opposed to just lines.

I researched different methods of cropping the image captured by the camera such that we only capture the paper and the diagram on it. Currently our approach is to greyscale the image, apply another filter to make it black and white, and apply a morphological erosion and dilation to remove noise. After that we will apply the openCV border detection and then use that to crop the background of the image. It is currently a work in progress.

We had to modify our schedule a little bit this week but we are currently on track. Next week I hope to finish this portion of removing the background image and then help Lisa integrate the SVG parser with the code to render the SVG files onto the whiteboard.

Lisa’s Status Report for April 2, 2022

This week I worked with Denise on combining vectorization logic with the GUI. We also discussed on how to handle identifying lines as straight lines, and ended on the solution of handling it by letting the user identify which lines should be straight after processing the image.

We are a little behind schedule. One setback this week is converting the vectorized SVG file to something that can be displayed on the whiteboard on the GUI. We’ll have to parse the SVG file and use the GUI interface to display the objects on the whiteboard. For now, we’re trying to stick to just getting lines to show up on the whiteboard for the demo, and we’ll try to work with other shapes in the coming weeks. We’ve made a lot of progress on this setback though, and should be able to get back on track by next week.

Next week, we want to be able to be able to complete a full vectorize-to-GUI pipeline. We also want to try to implement sending and receiving vectorized images between users within the GUI.

 

Ronald’s Status Report for April 2, 2022

This week I have begun integrating the current GUI code that we have for the project with the server code that I had previously created. This might prove to be a harder task than imagined since it requires a significant amount of alteration to the current code.

I don’t think that we are behind schedule but we’ll have to wait and see for next week if I can get this done in time though I think I should be able to.

As stated next week I hope to have a working multi-user application that can send images to one another.