This repository contains college projects -- screenshots/gif & source.
Thesis - Style Extractor and Distance Between Styles
- Software Engineering – GetInStyle
- Web Development – JiraCloneMVC
- Deep learning – Google Landmark Recognition Challenge
Click too see screenshots & details:
Computer Vision - Seam Carving for Content-Aware Image Resizing
Matlab
Image operator called seam carving that supports content-aware image resizing for both reduction and expansion. A seam is an optimal 8-connected path of pixels on a single image from top to bottom, or left to right, where optimality is defined by an image energy function. By repeatedly carving out or inserting seams in one direction we can change the aspect ratio of an image. By applying these operators in both directions we can retarget the image to a new size. The selection and order of seams protect the content of the image, as defined by the energy function. Seam carving can also be used for image content enhancement and object removal. We support various visual saliency measures for defining the energy of an image, and can also include user input to guide the process.
Computer Vision - Image Quilting for Texture Synthesis and Transfer
Matlab
Image-based method of generating novel visual appearance in which a new image is synthesized by stitching together small patches of existing images. We call this process image quilting. First, we use quilting as a fast and very simple texture synthesis algorithm which produces surprisingly good results for a wide range of textures. Second, we extend the algorithm to perform texture transfer – rendering an object with a texture taken from a different object.
Computer Vision - Training dictionaries for rare representations. Eliminate noise and restore images
Matlab
Implementing and testing the algorithms for noise elimination (denoising) and restoration (inpainting) in an image based on the training of a dictionary for rare representations.
Computer Vision - Making Mosaic Images
Matlab
Algorithms for obtaining mosaic images - that is, obtained by pasting several smaller images that form the illusion of a whole. The mosaics are implemented with both a square and a hexagonal shape. This algorithm is based on the differences between the colors of the patches in the image and the colors of the mosaic images.
Simulation techniques - Statistical simulation of a queue
R
The simulation is based on Poisson processes and simulates the waiting time in a queue depending on the time of arrival in the store.
Other Classes
- Software Development Methods – ROTL
Click too see screenshots & details:
Advanced Object Programming - SpaceChat
Java
🌍 SpaceChat is a chat that involves a server and multiple clients who can communicate with each other via the server. The server is created on a specific port and clients can connect to it. The options of each client include: viewing all clients, log out, send a message. 💥
Advanced Object Programming - WolfBank ATM
Java
☕ WolfBank ATM is a Remote Method Invocation (RMI) application implemented in Java that involves the existence of a server and multiple clients. A client (unique accountId) can go to an ATM and use 3 operations:
- double deposit(accountId, int amount)
- double widthdraw(accountId, int amount)
- double inquiry(int accountId)
Also, I consider that multiple clients with the same accountId can request widthdraw/operations. 💥
Computational Geometry - Convex Hull Graham's Scan Andrews version
Java
Graham's scan is a method of finding the convex hull of a finite set of points in the plane with time complexity O(n log n). The Andrews variant involves two-stage construction: first determine the infinitely superior convection (drawn with green, the final version and red what was tested) and the inferior convex winders (drawn in blue, the final version and in yellow what was tested and do not belongs the convex lower convex).
Contributors:
- Gorneanu Andrei
- Dospra Cristian
Operating Systems - Round-Robin-Scheduler
C
To schedule processes fairly, a round-robin scheduler generally employs time-sharing, giving each job a time slot or quantum (its allowance of CPU time), and interrupting the job if it is not completed by then. The job is resumed next time a time slot is assigned to that process. If the process terminates or changes its state to waiting during its attributed time quantum, the scheduler selects the first process in the ready queue to execute. In the absence of time-sharing, or if the quanta were large relative to the sizes of the jobs, a process that produced large jobs would be favoured over other processes.
Round-robin algorithm is starvatin-free and a pre-emptive algorithm as the scheduler forces the process out of the CPU once the time quota expires. We have predefined three types of users for which quantum time differs depending on the importance: a user has 1000 clock beats while an administrator has 3000 clock beats
Contributors:
- Costan Miriam
- Gorneanu Andrei
Web Techniques - Site to buy / download movies
HTML + CSS
A site to download / buy movies on subscriptions. At the moment, he has just a description and details for only eight movies.
Web Techniques - Game with MARVEL characters
javascript
The game contains five levels, each of which is related to a Marvel series movie. The protagonist is Emma Frost. The objective of the game is to pass all 5 levels. In each level you can draw positive characters from the top right of the game, only if the negative character is from that movie (for example, if you are level 1 - which is related to Spider Man - then you can shoot Spider Man and il you can place anywhere you want in the game space, be careful that there are more favorable places than others, if you try to shoot character other than the level you will not be left.). Positive characters drawn from the window where they are cycling random films have the ability to automatically shoot the antagonist with a nuclear weapon. And the player can lightning with more damage than the atomic weapon of positive characters. You know that every thundering lightning consumes you out of life, and any contact with the negative character is eating your life.
Robotics with Arduino - M&M Sorter
Arduino
Initially, colored candies are held in a charger and fall in turn (they are taken over by a stepper-motor).
Then it is analyzed by the color sensor that detects its color.
Then the servomotor picks up the candy, rotates to the candy color container.
Sorting is done in 2 stages, namely: the first stage, which involves the sorting of yellow and brown colors, and the remaining candy will be put in all the recipes, then if they are 5 consecutive rows in the color sensor the absence of the bumble beans can pass at Stage 2, alerting the user by moving the redistribution bridge of the candy 5 times. Step 2 involves sorting the other three colors: red, green and blue. 💥
Robotics with Arduino - Led matrix Game
Arduino
The game is a deviation from Flappy Bird. There are only 9 levels + level 10 in which the boss comes. A level ranging from 1 min to 3-4 mins at the last level that keeps the boss up until all his life is consumed. The boss is invincible, the goal is to survive as long as the score is gathered with the Euclidean distance from bird to boss.
Well, the start is input from the user, the joystick selects rules, credits or start-game. The end will be the same: at the end it shows the information about how it was played (score, lives, level) and this information disappears with a user input. He has difficulty, lives and score.
Probabilities & Statistics - Modelling Linear Regression
R
Using the Cars93 dataset in the MASS library, we implement a linear regression model. We estimate the regression parameters and comment on the results. We apply three methods to evaluate the accuracy of the model and make a prediction.
Contributors:
- Banu Alexandru
- Costan Miriam
Probabilities & Statistics - Modelling Linear Regression
R
Graphic representation for probability density and distribution function for a set of parameters for Student, Fisher and Chi-square distributions, indicating their properties and then testing statistical assumptions.
Contributors:
- Banu Alexandru
- Costan Miriam
Other Classes
- Object-Oriented Programming – Chess-Game
Click too see screenshots & details:
Formal Languages and Automata - CYK Parsing
C++
The Cocke–Younger–Kasami algorithm (alternatively called CYK, or CKY) is a parsing algorithm for context-free grammars, named after its inventors, John Cocke, Daniel Younger and Tadao Kasami. It employs bottom-up parsing and dynamic programming. The algorithm requires the context-free grammar to be rendered into Chomsky normal form (CNF), because it tests for possibilities to split the current sequence in half. Any context-free grammar that does not generate the extineiden 27 production rules of the forms and .
Grammar is : S->AB | BC A->BA | a B->CC | b C->AB | a
Formal Languages and Automata - Chomsky Normal Form
C++
Transform a Context-free grammar into it is Chomsky Normal Form (CNF), in four steps.
Formal Languages and Automata - DFA Minimal
C++
For any given DFA A, we can build a DFA A′ that accepts the same language using the minimum number of states needed. Since A has more states than A′, we need to figure out which states we have to remove.
Geometry - Gauss Elimination Method Algorithm
C++
The Gauss Elimination Method Algorithm has as input a 2 nd polynomial in n variables represented as a matrix and has as output the square shape of this polynomial.
Geometry - Gram-Schmidt Process Algorithm
C++
Gram–Schmidt process is a method for orthonormalising a set of vectors in an inner product space, most commonly the Euclidean space Rn equipped with the standard inner product. The Gram–Schmidt process takes a finite, linearly independent set S = {v1, ..., vk} for k ≤ n and generates an orthogonal set S′ = {u1, ..., uk} that spans the same k-dimensional subspace of R^n as S