Plug-in SDK

Upcoming mother of all image editors

Re: Plug-in SDK

Postby JEL » Sun Aug 24, 2014 11:37 pm

andydansby wrote:Hi Jel:

I have to do some revamping in my guides, however that little nugget on addressing adjacent pixels is found in the intermediate image processing guide. I'll probably get around to it in the late fall / winter time. Summertime is for house repair and yard work.

https://skydrive.live.com/redir?resid=A3FA0A9EDEE237D7!1101&authkey=!AH00l2fgMgt7t8w&ithint=file%2c.pdf.

If you want nested loops that look in the 1d directions, look at the Gaussian Blur vertical and horizontal. If you want nested loops that look in the 2d direction, look at the Gaussian Blur 2d. The difference is in the separability of the filter. If you have a 2d nested loop, it is always slower than the 1d nested loop.


Thanks for the very quick reply :)

I wasn't aware of this pdf, only the sdk one. Thanks for posting this :)

I've spent some time now trying to make this work in the script-node, but I keep getting errors that I can't figure out how to solve.

It's a recurring issue, for me, when trying to use code from 'real' cpp plugin-code inside the script-node... it needs to be typed/syntaxed differently in the script-node for some reason :/ (and without really understanding the logic behind cpp it's a bit like trying to play chess without understanding the rules; an exercise in futility :) )

'Simple' code I've managed to get working, but this is some steps above my level.

Anyway, thank you very much for your reply :)
DAP (AOPs): http://jelstudio.dk/DAP/
PhotoReactor (flows, effects and scripts): http://jelstudio.dk/PhotoReactor/
JEL
 
Posts: 294
Joined: Fri Jan 06, 2012 9:35 pm

Re: Plug-in SDK

Postby andydansby » Sat Sep 06, 2014 9:11 am

Here is a teaser.


The Original Image
kodim23.png
kodim23.png (544.53 KiB) Viewed 11407 times


Run through my little ole filter "Andy's Detail Manipulation"
kodim23_Final.jpg
kodim23_Final.jpg (152.74 KiB) Viewed 11407 times


Here's another example
kodim23_Final2.jpg
kodim23_Final2.jpg (209.93 KiB) Viewed 11407 times


The filter has two inputs, the Top input takes a blurred copy and the bottom Input takes the normal input.

Use an edge presercing blur for the top input for the best results, but other inputs are ok as well.

I need to fiddle around with some code before I release it and I will also post the code eventually in my beginner image processing guide.


Andy Dansby
andydansby
 
Posts: 161
Joined: Fri Oct 29, 2010 6:00 am
Location: Syracuse, NY

Re: Plug-in SDK

Postby andydansby » Mon Sep 08, 2014 6:18 pm

Hello to everyone who still visits these boards. It seems that Jel and I are the only ones who post lately, but I am certain that others visit.

I present to everyone ---- The great Plug-in Dump of 2014.

Well, as for great, I have 4 plugins ready for use and I will post one a day.

First of all, here is a simple plugin, but effective - Detail Manipulation (otherwise known as Andy's Detailer).

Here is the 32 bit version
Detail manipulation x32.zip
(62.31 KiB) Downloaded 458 times



Here is the 64 bit version
Detail manipulation x64.zip
(52.46 KiB) Downloaded 492 times


Here is a sample flow
2014-09-08 17_40_11-Untitled - PhotoReactor.jpg
2014-09-08 17_40_11-Untitled - PhotoReactor.jpg (10.91 KiB) Viewed 11371 times


This plugin works by taking a blurred copy of the image and the actual image, it places both into the LAB color space and performs a sharpen / detailer function. It then places the image back into the RGB colorspace.

Place the blurred image in the top input and the regular image in the bottom input.

As an enhancement to that flow, try smoothing the image with an edge preserving blur, such as bilateral or any of my edge preserving blur and have fun.

Enjoy
Andy Dansby
andydansby
 
Posts: 161
Joined: Fri Oct 29, 2010 6:00 am
Location: Syracuse, NY

Re: Plug-in SDK

Postby andydansby » Tue Sep 09, 2014 9:41 pm

Hello everyone:

Here is part 2 of the great plugin dump.

I present, Mean Curvature. This is an edge preserving smoothing for noise reduction - well almost. It has the tenancy to warp an image in an interesting way similar to shock smoothing, but not as extreme.

Here are the plugins

32 bit
MeanCurvature x32.zip
(41.43 KiB) Downloaded 436 times


64 bit
MeanCurvature x64.zip
(45.1 KiB) Downloaded 445 times


Here's what the standard Lena test image looks like after processing.
lena 256x256_Final mean curvature.jpg
lena 256x256_Final mean curvature.jpg (12.72 KiB) Viewed 11348 times


As with all of my plugins, I will release the source code in my guide at a later point.

Have fun processing

Andy Dansby
andydansby
 
Posts: 161
Joined: Fri Oct 29, 2010 6:00 am
Location: Syracuse, NY

Re: Plug-in SDK

Postby JEL » Wed Sep 10, 2014 12:57 am

andydansby wrote:Hello to everyone who still visits these boards. It seems that Jel and I are the only ones who post lately, but I am certain that others visit.


Haha yes :)

Almost every day I curse PR for being limited to 24 bit (the only reason I still check out other editors from time to time)

At the same time I praise PR's node-based editing (which is truly perfectly implemented) for being the best way of working with images ever!

Currently I'm trying to work with 'raw' scans of film-negatives... in the limited 8 bits per channel... :(
The bit-depth limit is really the only thing that, for me, limits the usefulness of PR. It's so hard to not end up with gritty/grainy looking images that just doesn't look as clean as what you can get in Lightroom for example. I do hope raising bit-depth is on the soon-to-do list. I think alone such an update to PR would be enough to seriously gain interest in PR from other people than just you and I :) (it does feel empty in here ever since DAP was released)

Anyway, even if there are probably more readers than posters, at least one forum-user is outspokenly grateful for your work :) (that would be me :) )
DAP (AOPs): http://jelstudio.dk/DAP/
PhotoReactor (flows, effects and scripts): http://jelstudio.dk/PhotoReactor/
JEL
 
Posts: 294
Joined: Fri Jan 06, 2012 9:35 pm

Re: Plug-in SDK

Postby andydansby » Wed Sep 10, 2014 5:45 pm

Day 3 of the Plugin Dump

Here is a plugin that took me a while to get working correctly. It's a noise reducing smoothing called Total Variation. It works as an iterative smoothing, preserving edges and reducing noise.


Here is the 32 bit version
totalvariation x32.zip
(51.29 KiB) Downloaded 441 times


Here is the 64 bit version
totalvariation x64.zip
(56.62 KiB) Downloaded 476 times






>Almost every day I curse PR for being limited to 24 bit (the only reason I still check out other editors from time to time)
Almost all of my plugins are ready for 16 BPP or higher. All that is needed is for Photo-Reactor to support the higher bits. I do this by placing the image in the floating point 0-1 range, perform the image processing and then expand it back to 0-255. For 16 BPP, all I would have to is divide by 65535 instead of diving by 255. As for higher BPP, I think it's stored a 0-1 already.


>At the same time I praise PR's node-based editing (which is truly perfectly implemented) for being the best way of working with images ever!
I like Photo-Reactor for the SDK and how relatively easy it is to program for and experiment with as well as my learning with programming. Although, I'm sure that all my blurs and edge preserving are getting old to most, to me part of the fun is figuring out how these blurs happen along with the math.

>Currently I'm trying to work with 'raw' scans of film-negatives... in the limited 8 bits per channel... :(
I haven't had much of a chance to work with the Bayer Matrix you were messaging about. Eventually, I get to play with it to see what havoc I can do with it and the gritty/grainy look it them, the colordepth may be difficult to overcome with 8 bpp.



Enjoy
Andy Dansby
andydansby
 
Posts: 161
Joined: Fri Oct 29, 2010 6:00 am
Location: Syracuse, NY

Re: Plug-in SDK

Postby JEL » Thu Sep 11, 2014 1:33 am

Speaking of your blur-filters, I was wondering: is it possible to create a filter that looks at a pixel (or group of adjacent pixels) and filter it to black (or just darker, or perhaps desaturated) if it is 'alone' (like a stuck pixel on a camera-sensor, you know those colored or bright dots)?

I'm thinking your blur-filters must already do something similar (looking at neighbor-pixels)

I got this idea that it could be used as a way to filter out chroma-noise (while leaving luma untouched)
Chroma-noise, being small dots (single pixels or small groups of pixels), should be desaturated*, while 'real' color (larger combined groups of pixels of similar color) should be allowed to come through.
*(or perhaps turned to black so it could be used as a mask for the alpha-channel)

What do you think? Sensible idea or have I missed something?
DAP (AOPs): http://jelstudio.dk/DAP/
PhotoReactor (flows, effects and scripts): http://jelstudio.dk/PhotoReactor/
JEL
 
Posts: 294
Joined: Fri Jan 06, 2012 9:35 pm

Re: Plug-in SDK

Postby andydansby » Thu Sep 11, 2014 7:59 pm

This is day 4 of the great plugin dump and here's another edge preserving smooth that intrigued me when I saw it and took a bit of time to program, yet I found it useful and interesting.

Domain Transform by Eduardo S. L. Gastal and Manuel M. Oliveira. It is a fast iterative edge preserving filter.


Here's the 32 bit version
domain transform x32.zip
(68.39 KiB) Downloaded 437 times


Here's the 64 bit version
domain transform x64.zip
(68.36 KiB) Downloaded 457 times



Enjoy
Andy Dansby
-----------
>Speaking of your blur-filters, I was wondering: is it possible to create a filter that looks at a pixel (or group of adjacent pixels) and filter it to black (or just darker, or >perhaps desaturated) if it is 'alone' (like a stuck pixel on a camera-sensor, you know those colored or bright dots)?

>I'm thinking your blur-filters must already do something similar (looking at neighbor-pixels)

>I got this idea that it could be used as a way to filter out chroma-noise (while leaving luma untouched)
>Chroma-noise, being small dots (single pixels or small groups of pixels), should be desaturated*, while 'real' color (larger combined groups of pixels of similar color) should >be allowed to come through.
>*(or perhaps turned to black so it could be used as a mask for the alpha-channel)

>What do you think? Sensible idea or have I missed something?

This sound very similar to a Krim Despeckling filter (I may be wrong on the name). I had researched this at one time, but got sidetracked. I should look at that again. In order to perform it on Chroma noise, I would probably look to the LAB color space and filter A and B. I would probably want to filter the Luma as well.


Andy Dansby
andydansby
 
Posts: 161
Joined: Fri Oct 29, 2010 6:00 am
Location: Syracuse, NY

Re: Plug-in SDK

Postby lcanter » Fri Sep 12, 2014 3:34 pm

Thanks Andy. The Photoreactor boards have generally been quiet lately - why I don't know, but I assure you that many appreciate your efforts with the plug-ins.

Larry
lcanter
 
Posts: 141
Joined: Thu Apr 12, 2012 2:24 pm

Re: Plug-in SDK

Postby andydansby » Fri Sep 12, 2014 9:55 pm

Hello:

This is the final plugin for the Great Plugin dump. This one is my little brainchild, as I have not seen this published anywhere.

This is another edge preserving smooth I'm calling the Spatially Adaptive - Range Adaptive filter or the SARA filter (or perhaps I like the name Sara).

This filter combines a separable box blur with a Selective Gaussian with the back and forth motion of the Domain Transform with an iterative function to produce one of the fastest edge preserving smooths I have seen. The output depending on the Lambda settings range from a beautifully fast bilateral to full Gaussian blur.

SARA x32.zip
(50.75 KiB) Downloaded 436 times

Here's the 32 bit version

SARA x64.zip
(55.25 KiB) Downloaded 478 times

Here's the 64 bit version


I'm going to take a break from plug-in creation so I can concentrate on bringing the source codes of all of my plugins and the source codes to other filters in my Intermediate Image Processing Guide. I will be rewriting all of the codes to be easy to read and writing descriptions of the variables. This is of course to encourage others to program and to create plug-in's themselves.

This does not mean I will stop programming, I'm just taking a break to come up with some other ideas as well as writing.

I will post here as I make advancements in the guide.

Andy Dansby
andydansby
 
Posts: 161
Joined: Fri Oct 29, 2010 6:00 am
Location: Syracuse, NY

PreviousNext

Return to Photo Reactor

Who is online

Users browsing this forum: No registered users and 2 guests

cron