Vectorization of Bitmaps Project

Regarding the doubts and clarifications related to Vectorization of Bitmaps Project

@ankit As you mentioned about the last year’s work (https://github.com/synfig/synfig/pull/930), I went through it and found that Vectorization was implemented using OpenToonz.
Apart from that I also went through the last year’s project conversations in the initial pull request (https://github.com/synfig/synfig/issues/735) where I got to know about the proposed method of vectorization using Potrace.
But as @KonstantinDmitriev pointed out in your conversation that OpenToonz is better and has more functionalities and suites better with Synfig. I would like to ask what exactly should be implemented or modified this year in the Project?
Also, this project is not listed as a proposed project on the website so is the priority of this project low?

1 Like

Hi

As discussed with @KonstantinDmitriev yes vectorization improvement is one of the proposed projects for 2020 and I will be mentoring the project this year :slight_smile:

Was busy since past few days and will update the idea list today itself(if GitHub works well… currently GitHub is down :frowning_face: )

Anyways the following things were discussed:

  • Implement “Preserve Painted Areas” option for CenterLine vectorizer.
  • Add preview
  • Add detection for stroke colors (if possible).
  • Add support for outline vectorization.

@KonstantinDmitriev did I missed something?

As you will see the comment

The priority of project doesn’t plays any role when we choosing who will participate in our GSoC activities. When choosing students we are looking at:

  • How many code contributions student has done to Synfig.
  • How complex those contributions are.
  • How many of his/her contributions are related to his proposal (or does he/she has previous experience with related topics).

Also, other things we consider:

  • If contributor has experience with other projects.
  • Personal motivation of the student.
2 Likes

Thanks, @ankit for the clarifications. went through the last year’s codebase and kind of got an idea about the work and coding style. But unfortunately, I was not able to find any open issues on Vectorization.
Can you please guide me about which issues to pick or exactly what contributions can I make to the project?

1 Like

Hi, as we will be changing the input dialog for vectorization feature(we need to add a new tab for outline method) see this image for reference:

anyone willing to work for vectorization should be atleast fix one issue related to GUI(gtkmm). Vectorization works on synfig-action and I have below mentioned a simple issue that can help you get a taste of it.
Apart from that we require the student to understand the outline algorithm and we will be requiring him/her to mention that in the proposal as well. You can refer morevna OpenToonz(a slightly modified version of OpenToonz ) maintained by @KonstantinDmitriev and @blackwarthog for understanding the algorithm.

Build instructions for morevna edition are here -> https://github.com/morevnaproject/opentoonz/blob/master/doc/how_to_build_linux.md

here are a few good issues that you can take on:

Below are medium difficulty issues related to vectorization.

However please make sure you understand the OpenToonz outline Vectorization algorithm(have a basic idea of how it works i.e the steps)

3 Likes

You covered everything! :slight_smile:

1 Like

Hey, I’m new to to GUI programming using gtkmm so I am currently facing some issues in solving the GUI related issues. I am reading tutorials and documentations to understand it completely.
Meanwhile, I was wondering if we can discuss more about some of the points which you mentioned needs to be done in this year’s project.

  1. What do you exactly mean by “preserve painted area”?
  2. What do you exactly mean by “stroke colors”?

Currently after running vectorization, only the structure of sketch/image is converted to vector see image:

as you see the fill color(painted area is lost) so we want to somehow preserve the painted area even after image is converted to vector form.

This I think is related to
" Enhanced ink recognition , when activated, allows to vectorize Raster images (such as TGA, TIF, PNG etc…) without antialiasing along the lines. An heuristic is used to recognize lines and painted areas creating a PLI level, where the lines are seen as ink and the painted areas as paint." as I found on toonz docs. @KonstantinDmitriev this was what you meant right?

1 Like

Because use this on synfig by that not using gimp + potrace?

http://potrace.sourceforge.net/

@ankit Do you have a particular format for GSoC proposal for Synfig? If yes, can yan please share the proposal format?

@ankit Please let me about this?

@harshagrwl template is on gsoc page as well as documentation page
https://synfig-docs-dev.readthedocs.io/en/latest/gsoc/2020/getting-started.html#application-template
https://summerofcode.withgoogle.com/organizations/5488108272877568/

2 Likes

@ankit I have installed OpenToonz and have tried using it for different images and in different cases. I understood the parameters that are required in Outline Vectorization but was not able to get the individual steps which are being performed by the Algorithm. Can you please guide me on how to find the steps involved in Outline Vectorization?

See my comment above @harshagrwl you need to understand the algorithm from codebase

For “preserve painted area” I have this example of how this work in OpenToonz:

I was talking about detecting stroke colors. Currently all strokes get black color after vectorization. But we could have an image with colored strokes. It would be nice to detect stroke color and keep it in vectorization result.

I am not sure that “Enhanced ink recognition” function does what’s intended, as I didn’t understand how it works. ^__^"

@bazza The OpenToonz algorithm gives better results than PoTrace, because it can detect outlines. Please see my explanation here - https://github.com/synfig/synfig/issues/735#issuecomment-468910647

2 Likes