[Mono-devel-list] System.Drawing Tests - image recognitionsimilarities

RafaelMizrahi rafim at mainsoft.com
Sun Jun 5 12:07:05 EDT 2005


Hi Jordy,
I have a first proposal for automatic testing of System.Drawing:

1. Use W3C SVG conformance test suite test files 
http://www.w3.org/Graphics/SVG/Test

2. Use SVG# library in order to convert SVG files into a picture.
And SharpVectorGraphics (aka SVG#):
http://sourceforge.net/projects/svgdomcsharp
http://www.gotdotnet.com/workspaces/releases/viewuploads.aspx?id=8bcf7f55-ac
4f-4778-9792-37d3e69ecf5c

3. Compare the SVG image with the expected image using MSE.
ImageMagick is also using MSE for image comparison.
http://www.imagemagick.org/script/compare.php
If MSE is not "fine" enough, we will add more compare algorithms to the
process.

-----------------------------------------
Mizrahi Rafael
Mainsoft SDE/T
-----Original Message-----
From: Jordi Mas [mailto:jordi at ximian.com] 
Sent: Monday, May 30, 2005 10:44 PM
To: RafaelMizrahi
Cc: Oren Gurfinkel; mono-devel-list at lists.ximian.com
Subject: Re: [Mono-devel-list] System.Drawing Tests - image
recognitionsimilarities

El dl 30 de 05 del 2005 a les 11:05 +0300, en/na RafaelMizrahi va
escriure:
> Hi Jordi, (and mono devs)

Hi Rafael.

> Mainsoft wish to invest some effort in testing System.Drawing.
> We wish to enhance the test suite with an image compare component which
will
> compare the difference between the expected .NET image and the mono image.

> The comparer (which we just started prototyping it) will be customized and
> produce a result according to several algorithms:
> * Prior to compare: format, size, colors, resolution
> * Color - strip boarders; compare histograms to get top colors and areas. 
> * Edge Detect - edge detection, and line generation, compare line lists.
> * Histogram to detect shapes
> * FFT (or cosine transform) of sub-regions or the whole image.
> * Tangent space Vectors
> * I appreciate your inputs?

We never devoted to much time to create a System.Drawing testing suite,
as a matter of fact that it hast just been included as part of the build
testing procedure very recently.  We appreciate any effort to enhance
the current test suite.

As Ben point out, most of drawing functions test should be validated
manually and then use the value obtained to do regression testing in the
future. I mean, we run the test manually, we make sure that we look as
Microsoft, and then we write the value down and the test use that value
in the future for regression testing. The manual part needs to be done
just once.

Since we are hacking System.Drawing a lot, regression tests have become
more important. Also we depend very heavily on libgdiplus and how future
releases of this library may break things that were testing and working
on the past.

> * Do you recommend on a curtain GPL library?

My personal preference will be to use the same license that the class
library, but you better check with Miguel.

> * Does anyone have such task in his TODO list?

Right now, we are focused on finishing Managed.System.Forms and nobody
is looking into enhancing the System.Drawing tests.

If you have any questions, feel free to write to the list or me
directly.

Thanks Rafael,

Jordi,

Note: Just as word of warning: text drawing in libgdiplus does not have
advanced I18N support. Regarding codecs, some of them do not support all
the features that Microsoft does.

-- 
Jordi Mas i Hernàndez - Mono development team - http://www.mono-project.com
Homepage and LiveJournal at http://www.softcatala.org/~jmas






More information about the Mono-devel-list mailing list