YOUR ACCOUNT

Login or Register to post new topics or replies
Sphinx.
Filter Optimizer

Posts: 1750
Filters: 39
I have a few questions and suggestions related to the Edge Detector component.

What is the uniformity parameter actually doing?

Why is the output not normalized? A manual post normalization step is hard to construct via FF components (or rather very inefficient), so it would be of real value if the component had this option itself.

A few suggestions:

More kernel options (prewitt, scharr, costella).

I'm missing some other output modes: Horizontal only, Vertical only, Directions (edge direction angle). The current Mode options seem a bit obsolete (you can easily do the grayscale, min and max filtering manually), however horz/vert/direction is not possible.
  Details E-Mail
Vladimir Golovin
Administrator
Posts: 3446
Filters: 55
Quote
Sphinx. wrote:
Why is the output not normalized? A manual post normalization step is hard to construct via FF components (or rather very inefficient), so it would be of real value if the component had this option itself.


To perform normalization, we need to have a bitmap with all output pixels already rendered - and currently Edge Detector is not a bitmap-based component (like e.g. Blur). Converting Edge Detector to a bitmap-based component would reduce output quality (pixels are inherently less precise than samples), but this is not the main problem.

The main problem is that Filter Forge doesn't render internal bounded bitmaps which are necessary for normalization - you can't perform normalization on a basically infinite, unbounded bitmap. You sort of can, by performing normalization in a certain neighborhood, but that would greatly reduce the rendering speed, in addition to the quality decrease caused by conversion from a sample-based to a bitmap-based approach.

(And another minor problem is that Edge Detector accepts and outputs HDR colors, but we could deal with it if we had a bounded bitmap to normalize.)
  Details E-Mail
Vladimir Golovin
Administrator
Posts: 3446
Filters: 55
Quote
Sphinx. wrote:
I'm missing some other output modes: Horizontal only, Vertical only, Directions (edge direction angle). The current Mode options seem a bit obsolete (you can easily do the grayscale, min and max filtering manually), however horz/vert/direction is not possible.


Directional detection + custom angle sounds like a good idea. We'll investigate this.
  Details E-Mail
Dmitry Sapelnikov
Filter Forge, Inc. AKA Egret
Posts: 76
Filters: 5
Quote
Sphinx. wrote:
What is the uniformity parameter actually doing?


The uniformity parameter technically does non-maximum suppression step from the Canny edge detector.
The 'Fine' option produces the same result as the Canny's algorithm.
'Coarse' is a simplification - we use only 4 directions instead of 8. It reduces the number of samples needed to suppress the edges.

Quote
Sphinx. wrote:
however horz/vert/direction is not possible

It's a good idea and it can be implemented easily. Maybe in future releases. I've just put it into my notes.

Quote
Sphinx. wrote:
More kernel options (prewitt, scharr, costella).

When we prepared the 2nd beta, I'd almost fallen into temptation to remove all kernels except Sobel =) To my mind, all gradient-based edge detectors produce quite similar results. Maybe we'll add the options you proposed but I'm not sure.
  Details E-Mail
Sphinx.
Filter Optimizer

Posts: 1750
Filters: 39
Thanks for your answers. I actually thought you implemented it as a bitmap based component - hence the normalization request. I can understand why it is not possible when implemented as true sampler.

One thing strikes my mind though: if we assume each sample in the kernel window to be in range 0..1, then given the actual kernel weights there must be a sample configuration (or perhaps a few, but similar in possible max. output) that produces the highest possible output value. This configuration could produce a fixed normalization constant (used before the amp. param is applied).
  Details E-Mail
SpaceRay
SpaceRay

Posts: 12298
Filters: 35
very good to know
  Details E-Mail

Join Our Community!

Filter Forge has a thriving, vibrant, knowledgeable user community. Feel free to join us and have fun!

33,711 Registered Users
+18 new in 30 days!

153,533 Posts
+38 new in 30 days!

15,348 Topics
+73 new in year!

Create an Account

Online Users Last minute:

20 unregistered users.