Open GoogleCodeExporter opened 8 years ago
One thing to note from your code:
//new MaskedFilter(new Sepia(), image).ApplyInPlace(image);
This looks very strange to me. You use same image as mask image, as input image
for processing. I would not expect this.
The code around ApplyMask() seem to be valid. Did you try doing these steps
first in IPLab application and see if it all works (just to exclude coding
errors):
http://www.aforgenet.com/projects/iplab/
I believe you are telling about 24 bpp and 8 bpp input image, not mask. Since
mask can be only 8 bpp (you would get exception otherwise).
Original comment by andrew.k...@gmail.com
on 13 Aug 2015 at 9:36
Very appreciate for your prompt response.
*Correct:* //new MaskedFilter(new Sepia(), *imageMask*).ApplyInPlace(*image*
);
Sorry about this issue, cause I use this function:
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
------------------------
static void ApplyBlobMaskingOnImage(ref
AForge.Imaging.UnmanagedImage image, ref System.Drawing.Rectangle[] rects)
{
if (rects == null || rects.Length == 0)
return;
var imageMask = AForge.Imaging.UnmanagedImage.Create(
image.Width, image.Height, *image.PixelFormat*);
foreach (var rect in rects)
if (rect != System.Drawing.Rectangle.Empty)
AForge.Imaging.Drawing.FillRectangle(imageMask, rect,
System.Drawing.Color.White);
new ApplyMask(imageMask).ApplyInPlace(image);
//new MaskedFilter(new Sepia(), imageMask).ApplyInPlace(image);
}
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
------------------------
But I don't care that I must use Gray image mask as overlay instead RGB
image mask even for RGB image! and "ApplyMask" or "MaskedFilter" don't
throw exception about this!
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
------------------------
.
.
.
var imageMask = AForge.Imaging.UnmanagedImage.Create(
image.Width, image.Height,
*System.Drawing.Imaging.PixelFormat.Format8bppIndexed*);
.
.
.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
------------------------
Be nice if the filters check for overlay that be Grayscale.
Very very good and thanks.
Good luck.
Hashem.
Original comment by hashemza...@gmail.com
on 13 Aug 2015 at 12:27
The documentation clearly says about the fact that mask must be 8bpp:
http://www.aforgenet.com/framework/docs/html/fbcfe698-f9a2-a672-c334-30983103064
3.htm
The code tells an exception should be thrown if it is not 8bpp:
https://code.google.com/p/aforge/source/browse/trunk/Sources/Imaging/Filters/Oth
er/ApplyMask.cs
Original comment by andrew.k...@gmail.com
on 13 Aug 2015 at 1:05
You are right and this issue is discarded, I'm sorry.
But I couldn't find the try catch blocks in my code that prevent to appear
this exception. All of them content has this
command:"MessageBox.Show(ex.Message);".
Original comment by hashemza...@gmail.com
on 13 Aug 2015 at 1:29
________________________________________________________
if ( ( maskImage != null ) && ( maskImage.PixelFormat !=
PixelFormat.Format8bppIndexed ) )
{
throw new ArgumentException( "The mask image must be 8
bpp grayscale image." );
}
*maskImage **= value;*
unmanagedMaskImage = null;
mask = null;
_________________________________________________________
I found it!!!! Bug is exist!
Check is before set value!
On Thu, Aug 13, 2015 at 5:59 PM, Hashem Zavvari <hashemzawary@gmail.com>
wrote:
Original comment by hashemza...@gmail.com
on 13 Aug 2015 at 1:48
Yes, good spot. Somehow the silly bug has survived.
Original comment by andrew.k...@gmail.com
on 13 Aug 2015 at 1:51
Original issue reported on code.google.com by
hashemza...@gmail.com
on 13 Aug 2015 at 7:32