Project
Seam Carving
Challenging
438 completions
~ 31 hours
4.4You will learn how to work with images. At the same time you will get familiar with basic graph processing algorithms. Implement seam carving technique yourself and try it on any picture you like.
Provided by
JetBrains Academy
About
Seam carving is an image processing technique for content aware image resizing. Content aware means that it saves objects and object aspect ratio at processed image.
Graduate project
This project covers the core topics of the Kotlin Developer course, making it sufficiently challenging to be a proud addition to your portfolio.
At least one graduate project is required to complete the course.
What you'll learn
Once you choose a project, we'll provide you with a study plan that includes all the necessary topics from your course to get it built. Here’s what awaits you:
Learn how to deal with images. You will create an image with simple drawing and save it to file.
Now you should add some command line parameters for input and output files. Then you will read the image from the disk, inverse image colors and save to the given file location.
Pixel energy is the core concept of seam carving algorithm. At this stage you will implement energy-calculation function and apply it to the given image.
Now you are ready to find the best seam to remove. You will find vertical seam with lowest summary energy and output image with highlighted seam.
Now you should implement horizontal seam search. It is the same as vertical. but horizontal. Try using a transposed view of your image!
Now you have everything to resize image preserving content. Just remove seams one by one!
Reviews
4 weeks ago
This project is a real roller coaster. It ramps up quickly from simple tasks to a challenging, university-level implementation of Dijkstra's algorithm. The biggest hurdles were debugging the tricky 2D array [x][y] indexing and refactoring the resizing loop to be efficient (in-memory vs. slow file I/ ...
Paweł Majchrowicz
2 months ago
nice to havealgorithms definitions efficiency measurement and their implementation in image processing with the use of programming language
4.4
Learners who completed this project within the Kotlin Developer course rated it as follows:
