A little ad hoc app. to perform 3x3 adaptive convolution on 24-bit images (c++).
1. Desired filter (selected from combo box) is applied to gray-scale copy of original image (8-bit depth). 2. Gray-scale image pixels are loaded in appropriate floating-point array and normalized to 1. 3. Original image channels are also loaded into separate byte-type arrays. 4. Gray-scale array data at position [i,j] (neighbor pixels) is used as 3x3 convolution kernel. 5. Convolution is performed for each pixel and all channels. 6. Resultant image is copied to output.
Post Messages Demo by William Miller/Adirondack Full Source Compiled with DelphiXE7, but is expected to compile with Delphi 2010 or higher. Price: Free
This application demonstrates how to post messages to a form which displays this message after the main form becomes visible... a runtime created OnAfterShow event if you will.
This application also demonstrates how to post a message to create a new user created runtime TImageEnVect event. In this case, the runtime created event could be considered a "OnAfterNewObject event". This event is executed every time a object is added to TImageEnVect. When the "OnAfterNewObject event" is executed, a modal form appears which asks if the object should be added. If the user replies "Yes" no action is taken. If the user replies "No" the new object is removed. Source Code: attach/w2m/2015319105426_PostMessage.zip 63.48 KB
Create Thumbnail With IEConvertToThumbnail By Bill Miller Adirondack Software & Graphics Full Source Demo Project Compiled with Delphi XE7 Price: FREE This project shows how to utilize the excellent IEConvertToThumbnail procedure in iexHelperFunctions.pas unit as well as to save full frame images and thumbnails.
LoadFromFileOnDemand With Annotations By Adirondack Software & Graphics Full Source Price: Free
This simple application was developed to test a potential bug in TImageEnMView to try to determine why ImageEnMView1.MIO.Params [idx].ImagingAnnot.ObjectsCount always returns 0. Although I was unable to find out what was causing the problem, the application may be useful to those developers who want to easily display vectorial objects in TImageEnVect as thumbnails in TImageEnMView.
At a first look, you can get rid of Sqrt function used for calculating variables d1 and d2 (distance), because it's expensive and you repeatedly call it inside 4 nested loops.
As variables d1 and d2 are used only for comparing (if d1 < d2 then begin), calling Sqrt is not necessary (you can compare d1^2 and d2^2 as well).
Yes, that made quite a difference. Even if the result changed a little it is still acceptable. Thanks for the idea! I used this formula so I did not need to use LAB color space, which is quite slow and also would require sqrt in the processing of color comparing.
No I did not use any code from RawTherapee. I do not know that program at all. Actually I could not find any code samples of how to implement Clarity except one that I did not like in VB.
If I come up with a better solution or find some code explaining me the procedure I gone add it here but for now I am just guessing.
Well I did a lot of testing but none gave me the result I wanted. This was the closest I could get for the moment.
Do you have any resources of how it is implemented?
DrawGrid In OnDrawBackBuffer Event with Alternate Colors and Zoom Support By Bill Miller Adirondack Software & Graphics Full Source Demo Project Compiled with Delphi XE7 Price: FREE
The grid is drawn as close as possible to the DisplayGrid provided by ImageEn. Every 32nd column or row is drawn with a 2 pixel wide blue color. The "inside" pixels are drawn in white or black. The image may be zoomed and at every full increment of 100% zoom the grid dimensions are zoomed as well.
Thumbnail Creation 5 Different Ways by William Miller/Adirondack Full Source Compiled with Delphi 10 Seattle on Windows 10, but is expected to compile with Delphi 2010 or higher. Price: Free
This demo allows visual comparison of thumbnails created 5 different ways with ImageEn.