Page 1 of 1

ADR Issues with 6.4

Posted: Wed Dec 02, 2009 12:02 pm
by susanth
I recently upgraded from 6.3 to 6.4 (6.3.0.4 to 6.4.0.10 of GDPicture.Net.dll). In 6.3 ADR used to work beautifully, but the same code compiled with 6.4 doesn't give the same confidence level. If I use the exact image as that of the template, ADRGetLastConfidence() method returns a confidence value of only 44%. With version 6.3, ADRGetLastConfidence() used to return 100%.

Is this an intentional change? Or is it a bug? ::bug::

Susanth

Re: ADR Issues with 6.4

Posted: Wed Dec 02, 2009 4:08 pm
by Loïc
Hi,

Strange behavior. Could you try to update to GdPicture.NET 6.5 ?

If your problem persists, please attach your image used as template and give us some code you are using to retrieve confidence.

With best regards,

Loïc

Re: ADR Issues with 6.4

Posted: Fri Dec 04, 2009 9:18 am
by susanth
Hi,

I just upgraded to 6.5, but the problem persists. Please find the code used to create the template as well as to do ADR. I get confidence only between 40 and 60 for the exact same image (actually the exact same ImageID) only. It is not image specific. I tried with many imaged. The same code used to give confidence level of 100 with version 6.3.

I was using .Net 2.0. Tried the same code with .Net 3.5 as well. Same behaviour.

I would appreciate any help here.

Susanth

Code: Select all

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.IO;
using System.Windows.Forms;
using GdPicture;
using System.Drawing.Drawing2D;

namespace iRead
{
    public partial class iReadForm : Form
    {
        private GdPictureImaging m_GdImaging = new GdPictureImaging();
        private int m_ImageID = 0;

        public iReadForm()
        {
            InitializeComponent();
            m_GdImaging.SetLicenseNumber("my license number");
        }

        private void iReadForm_Load(object sender, EventArgs e)
        {
            m_ImageID = m_GdImaging.CreateGdPictureImageFromFile("c:\\sample.tif");
        }

        private void CreateTemplate()
        {
            int nBits = m_GdImaging.GetBitDepth(m_ImageID);
            TiffCompression tc = TiffCompression.TiffCompressionJPEG;
            switch (nBits)
            {
                case 1: tc = TiffCompression.TiffCompressionCCITT4; break;
                default: tc = TiffCompression.TiffCompressionLZW; break;
            }

            string strTempID = Guid.NewGuid().ToString();
            string templateFile = GetApplicationDirectory() + "Templates\\" + "templateconfig.t";
            if (File.Exists(templateFile))
            {
                m_GdImaging.ADRLoadTemplateConfig(templateFile);
            }
            else
            {
                m_GdImaging.ADRStartNewTemplateConfig();
            }

            if (!Directory.Exists(GetApplicationDirectory() + "Templates\\" + strTempID))
                Directory.CreateDirectory(GetApplicationDirectory() + "Templates\\" + strTempID);

            int TemplateID = m_GdImaging.ADRCreateTemplateEmpty();
            string strSampleFullPath = GetApplicationDirectory() + "Templates\\" + strTempID + "\\" + Convert.ToString(TemplateID) + ".tif";
            m_GdImaging.SaveAsTIFF(m_ImageID, strSampleFullPath, tc);

            bool bStatus = m_GdImaging.ADRSetTemplateTag(TemplateID, strTempID);
            m_GdImaging.ADRAddGdPictureImageToTemplate(TemplateID, m_ImageID);

            bStatus = m_GdImaging.ADRSaveTemplateConfig(templateFile);
            m_GdImaging.ADRDeleteTemplate(TemplateID);
        }

        private void ADRButton_Click(object sender, EventArgs e)
        {
            try
            {
                string templateFile = GetApplicationDirectory() + "Templates\\" + "templateconfig.t";
                m_GdImaging.ADRLoadTemplateConfig(templateFile);
                int count = m_GdImaging.ADRGetTemplateCount();
                int template = m_GdImaging.ADRGetCloserTemplateForGdPictureImage(m_ImageID);
                m_GdImaging.ReleaseGdPictureImage(m_ImageID);

                string strTempTag = m_GdImaging.ADRGetTemplateTag(template);
                double confLevel = m_GdImaging.ADRGetLastConfidence();

                string strMessage = "Template : " + template + "\n" +
                                    "Tag : " + strTempTag + "\n" +
                                    "Confidence : " + confLevel + "%";
                MessageBox.Show(strMessage);
            }
            catch (Exception ex)
            {
            }
        }
    }
}

Re: ADR Issues with 6.4

Posted: Fri Dec 04, 2009 11:49 am
by Loïc
Hi Susanth,

I was unable to run your code "as is"

Please, create a standalone application or a simple code file without reference to other objects.

Also, I really need on of your image file for test.

Kind regards,

Loïc

Re: ADR Issues with 6.4

Posted: Fri Dec 04, 2009 12:17 pm
by Loïc
Hi again,

After other investigation we found a stupid bug in the ADR engine :oops:

The problem will be fixed in next minor release.

Kind regards,

Loïc