- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
(Ipp 5.0)
I need to blur a 16u pixel buffer using a gaussian kernel.
I have noticed that blurring with IIR much faster is than with a matrix filter.
Do you have an example of blurring with IIR?
Thomas
Link Copied
3 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
Your could try fast ipp separable filters
ippiFilterRow/ColumnBorderPipeline
the example 9-3 in vol 2 of manual shows how to do it without the extra image. But these functions work with 8u/16s/32f images
Thanks,
Alexander
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks for the tip.
In the mean time, I implemented my own IIR blurring by gaussian.
The code is very fast when burring with large matrices (100x100).
For other sharpening code I use, I will try to move from 17x17 to separable row/column mode, to speed that up. I use a LoG (unsharp mask) matrix, but it could need some speedup.
Thomas
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello!
I do not exactly know what the IIR Gaussian blur is, but I use one, from GIMP. There are two problems with it:
1) it is increassingly imprecise for larger pixel values,
2) I do not understand its stddev computation:
vert = fabs (vert) + 1.0;
std_dev = sqrt (-(vert * vert) / (2 * log (1.0 / 255.0)));
where `vert' is defined as a radius in the GUI. What is 255 doing there?
The equation changes radius = 1 to stddev = about 0.3. Is it then right to say that I used an approx. of Gaussian blur with stddev = 0.3 with that method?
Best regards,
Artur
I do not exactly know what the IIR Gaussian blur is, but I use one, from GIMP. There are two problems with it:
1) it is increassingly imprecise for larger pixel values,
2) I do not understand its stddev computation:
vert = fabs (vert) + 1.0;
std_dev = sqrt (-(vert * vert) / (2 * log (1.0 / 255.0)));
where `vert' is defined as a radius in the GUI. What is 255 doing there?
The equation changes radius = 1 to stddev = about 0.3. Is it then right to say that I used an approx. of Gaussian blur with stddev = 0.3 with that method?
Best regards,
Artur
Message Edited by arataj on 03-19-200605:50 AM
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page