Search found 18 matches

by thevinn
2013-01-06T19:50:07-07:00
Forum: Developers
Topic: Anti-aliased stroked mask using distance transform
Replies: 3
Views: 7006

Re: Anti-aliased stroked mask using distance transform

Distance transform however requires the anti-alising pixels converted to 'distance' (below 'unit' distance, default=100 per pixel width) before the main distance function runs. With the new information regarding Outer Glow and what not, to reproduce Photoshop's "Stroke" effect, it suffice...
by thevinn
2013-01-06T19:47:36-07:00
Forum: Digital Image Processing
Topic: Photoshop "Outer Glow" Technique: Soft?
Replies: 7
Views: 26420

Re: Photoshop "Outer Glow" Technique: Soft?

On review there is a thrid posiblity. using a 'diffusion curve' between a fixed outisde and inside shape. this will be sharp as it approaches sharp points (as in a true distance gradient), but become smoother away from those points (as in a blur). Isn't this just the same thing? Morphological dilat...
by thevinn
2013-01-06T19:46:13-07:00
Forum: Users
Topic: Sigma*
Replies: 17
Views: 28609

Re: Sigma*

NOTE normal distance kernels in IM use 100 as the orgongonal neighbour distance scale, where chamfor uses a scale of '5' It may be a interesting 'specialized' distance kernel appropriate to images needing HIGH distances, and a good interger distance results. I use these weights: // Kernel values fr...
by thevinn
2013-01-06T16:29:54-07:00
Forum: Users
Topic: Generic bevel and emboss
Replies: 34
Views: 66670

Re: Generic bevel and emboss

IM -morphology distance gets rather slow even for distances (widths) of 10; whereas PS has somehow implemented this or its equivalent in real time adjustment of its slider. I wish I knew how they did that. Photoshop uses the algorithm described by G. Borgefors in the 1986 paper "Distance Trans...
by thevinn
2013-01-06T16:16:51-07:00
Forum: Users
Topic: Sigma*
Replies: 17
Views: 28609

Re: Sigma*

UPDATE! We now know the exact algorithm: 1) Compute two values: "dilate" and "blur" measured in pixels. Both are dependent onthe values of both spread and size. 2) Apply "dilate" pixels of morphological dilation to the grayscale mask. The dilation needs to be a graysca...
by thevinn
2012-12-21T18:25:06-07:00
Forum: Digital Image Processing
Topic: Photoshop "Outer Glow" Technique: Soft?
Replies: 7
Views: 26420

Re: Photoshop "Outer Glow" Technique: Soft?

Upon much research, and consulting with other individuals, my latest theory is that Photoshop's "Outer Glow, Softer" algorithm is as follows: 1) Apply morphological dilation to the mask, dilationSize = (outerGlowSize * spread), output 8-bit alpha 2) Apply two pass box blur, equivalent radi...
by thevinn
2012-12-19T09:27:52-07:00
Forum: Consulting
Topic: Where can I solicit contracting / programming work?
Replies: 8
Views: 27242

Re: Where can I solicit contracting / programming work?

GooseTracks wrote:I know for programmers you can go to elance or odesk and find someone there or you can even go to craigslist and find someone to do it cheap.
In my experience, elance / odesk / craigslist type places are worse than useless for finding specialized programmers in these types of fields.
by thevinn
2012-12-19T09:24:10-07:00
Forum: Digital Image Processing
Topic: Photoshop "Outer Glow" Technique: Soft?
Replies: 7
Views: 26420

Re: Photoshop "Outer Glow" Technique: Soft?

Sorry for the delay, I fixed the link.
by thevinn
2012-08-26T08:10:17-07:00
Forum: Digital Image Processing
Topic: Photoshop "Outer Glow" Technique: Soft?
Replies: 7
Views: 26420

Re: Photoshop "Outer Glow" Technique: Soft?

Could the Fast Marching algorithm be part of a possible solution?
by thevinn
2012-08-13T07:49:50-07:00
Forum: Digital Image Processing
Topic: Photoshop "Outer Glow" Technique: Soft?
Replies: 7
Views: 26420

Photoshop "Outer Glow" Technique: Soft?

I'm working on implementing Photoshop Layer Styles in my MIT licensed project: https://github.com/vinniefalco/LayerEffects After a lot of study and searching I figured out that the distance transform plays a key role in implementing almost all the styles. You can see clear evidence of the distance t...
by thevinn
2012-08-10T06:22:18-07:00
Forum: Consulting
Topic: Where can I solicit contracting / programming work?
Replies: 8
Views: 27242

Re: Where can I solicit contracting / programming work?

NicolasRobidoux wrote:Question: What is the largest diameter of your disks (in pixels)?
Well I'm trying to replicate all of the Photoshop Layer Styles, so 250.

But like I said, erosion and dilation can be expressed in terms of the distance transform, which I have finally got working.
by thevinn
2012-08-10T02:02:11-07:00
Forum: Users
Topic: Sigma*
Replies: 17
Views: 28609

Re: Sigma*

However there is an alternative way to using a 'blur image'. That is by creating a 'distance from object type function. With that type of function the 'corners' of the shape would not 'stick out' from the glow on large blur radii. Unfortunately this type of function is not each to create, though it...
by thevinn
2012-08-09T20:08:35-07:00
Forum: Developers
Topic: Anti-aliased stroked mask using distance transform
Replies: 3
Views: 7006

Anti-aliased stroked mask using distance transform

From a binary mask it is possible to generate an anti-aliased stroke using an exact distance transform:

Image
by thevinn
2012-08-09T18:45:22-07:00
Forum: Consulting
Topic: Where can I solicit contracting / programming work?
Replies: 8
Views: 27242

Re: Where can I solicit contracting / programming work?

thevinn wrote:I need to implement fast grayscale dilate / erode with flat circular structuring elements
In case no one knew, I have found that the Euclidean Distance Transform can be used to easily compute dilations and erosions with circular structuring elements.
by thevinn
2012-08-09T18:43:12-07:00
Forum: Consulting
Topic: Where can I solicit contracting / programming work?
Replies: 8
Views: 27242

Re: Where can I solicit contracting / programming work?

I found it extremely difficult to integrate ImageMagick, OpenCV, VIPS into my project. They want to bring in a whole galaxy of types and functions, and if they are not present then nothing works. It's not clear how to take a piece of code and reuse it without taking the whole library with it.