Greyscale threshold using ni black gives invalid results on large image

I am analyzing images of hot steel slabs looking for cracks in the surface of the slab.  The images are 2048 pixels wide by 14000 to 40000 pixels high.  I am using NI Vision Assistant 8.5.
Sometimes the threshold does not work right when using the grayscale threshold, Local Threshold: Niblack.  For smaller images it works ok, but for larger images it will not work.  There are no errors, but the result is an image full of colored pixels rather than an image of particles.
I have attached some sample images.  These are small crops of the larger image.
The first one is from an image about 17000 pixels high which worked properly.  The second is from an image about 25000 pixels high, which did not work.
Is this strictly a size issue?  Is there something I can do to fix it?
Thanks!
Attachments:
Image11.jpg ‏44 KB
Image21.jpg ‏55 KB

I am having the problem within Vision Assistant.  I think at one point I migrated it to a LabVIEW vi and had similar results.
I am going to try to post a link to the files.  The images are rather large, about 5MB.  I have also attached the script.
The first file should work with the script, the second should not.
Thanks for looking at this!
Glen
http://us.share.geocities.com/theace999/Images/11192003.jpg
http://us.share.geocities.com/theace999/Images/11209307.jpg
Attachments:
Image Processing41.scr ‏4 KB

Similar Messages

  • XML DB: using default namespace gives different result

    In Oracle9i R2 I created an XMLTYPE table based on a XML schema. The schema uses a namespace. When I insert an instance document that has a namespace prefix for every element querying works fine. When I insert an instance document that has the namespace defined as the default namespace, the query returns an empty row for that document. It seems to me that before storing the document the namespaces must be expanded and hence there should be no difference between the two documents and the query should return a value for both rows. Any thoughts? Thanks in advance! Below is the script and the results of the queries.
    ==========
    THE SCRIPT
    ==========
    DROP TABLE islands_xsd
    BEGIN
    DBMS_XMLSCHEMA.DELETESCHEMA('http://www.cumquat.nl/xsd/island.xsd', DBMS_XMLSCHEMA.DELETE_CASCADE);
    END;
    BEGIN
    DBMS_XMLSCHEMA.REGISTERSCHEMA('http://www.cumquat.nl/xsd/island.xsd',
    '<?xml version="1.0"?>
    <schema targetNamespace="http://www.cumquat.nl/xsd/island.xsd"
    xmlns:isl="http://www.cumquat.nl/xsd/island.xsd"
    xmlns="http://www.w3.org/2001/XMLSchema">
    <element name="island" type="isl:islandType"/>
    <complexType name="islandType">
    <sequence>
    <element name="name" type="string"/>
    <element name="country" type="string"/>
    <element name="total_area" type="positiveInteger"/>
    <element name="shoreline" type="positiveInteger"/>
    <element name="pop_density" type="integer"/>
    <element name="dist_continent" type="integer"/>
    </sequence>
    </complexType>
    </schema>');
    END;
    CREATE TABLE islands_xsd OF XMLTYPE
    XMLSCHEMA "http://www.cumquat.nl/xsd/island.xsd"
    ELEMENT "island"
    INSERT INTO islands_xsd VALUES (XMLTYPE(
    '<?xml version="1.0"?>
    <isl:island xmlns:isl="http://www.cumquat.nl/xsd/island.xsd"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.cumquat.nl/xsd/island.xsd http://www.cumquat.nl/xsd/island.xsd">
    <isl:name>Aldabra</isl:name>
    <isl:country>Seychelles</isl:country>
    <isl:total_area>13</isl:total_area>
    <isl:shoreline>104</isl:shoreline>
    <isl:pop_density>0</isl:pop_density>
    <isl:dist_continent>6</isl:dist_continent>
    </isl:island>'))
    INSERT INTO islands_xsd VALUES (XMLTYPE(
    '<?xml version="1.0"?>
    <island xmlns="http://www.cumquat.nl/xsd/island.xsd"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.cumquat.nl/xsd/island.xsd http://www.cumquat.nl/xsd/island.xsd">
    <name>Amsterdam</name>
    <country>France</country>
    <total_area>9</total_area>
    <shoreline>51</shoreline>
    <pop_density>0</pop_density>
    <dist_continent>30</dist_continent>
    </island>'))
    SELECT i.EXTRACT('/isl:island/isl:name', 'xmlns:isl="http://www.cumquat.nl/xsd/island.xsd"')
    FROM islands_xsd i
    SELECT i.EXTRACT('/isl:island/isl:name', 'xmlns:isl="http://www.cumquat.nl/xsd/island.xsd"').GETSTRINGVAL()
    FROM islands_xsd i
    SELECT i.EXTRACT('/isl:island/isl:name/text()', 'xmlns:isl="http://www.cumquat.nl/xsd/island.xsd"').GETSTRINGVAL()
    FROM islands_xsd i
    =======================================
    THE RESULTS OF RUNNING THE QUERIES
    =======================================
    SQL> SELECT i.EXTRACT('/isl:island/isl:name', 'xmlns:isl="http://www.cumquat.nl/xsd/island.xsd"')
    2 FROM islands_xsd i
    3 /
    I.EXTRACT('/ISL:ISLAND/ISL:NAME','XMLNS:ISL="HTTP://WWW.CUMQUAT.NL/XSD/ISLAND.XS
    XMLTYPE()
    2 rows selected.
    SQL> SELECT i.EXTRACT('/isl:island/isl:name', 'xmlns:isl="http://www.cumquat.nl/xsd/island.xsd"').GE
    TSTRINGVAL()
    2 FROM islands_xsd i
    3 /
    I.EXTRACT('/ISL:ISLAND/ISL:NAME','XMLNS:ISL="HTTP://WWW.CUMQUAT.NL/XSD/ISLAND.XS
    <isl:name xmlns:isl="http://www.cumquat.nl/xsd/island.xsd">Aldabra</isl:name>
    2 rows selected.
    SQL> SELECT i.EXTRACT('/isl:island/isl:name/text()', 'xmlns:isl="http://www.cumquat.nl/xsd/island.xs
    d"').GETSTRINGVAL()
    2 FROM islands_xsd i
    3 /
    I.EXTRACT('/ISL:ISLAND/ISL:NAME/TEXT()','XMLNS:ISL="HTTP://WWW.CUMQUAT.NL/XSD/IS
    Aldabra
    2 rows selected.

    This seems wrong to me. I've filed Bug 2400119 to get this looked into by development.
    I'd expect any document with an appropriate qualified name to be found by your XPath expression, irrespective of whether syntactically one of the documents happened to use the default namespace syntax.

  • When i use oracle vwp give this error (java.lang.IllegalArgumentException:

    sir i use oracle with vwp
    sir see my code this code goto catch (Exception e) section and give this code in textfield
    " java.lang.IllegalArgumentException: luser.username "
    when i use mysql that give right result but when use oracel that give me this error
    try {
    RowKey userRowKey = luserDataProvider.findFirst
    (new String[] { "luser.username" },
    new Object[] { textField4.getText()});
    if (userRowKey == null) {
    textField3.setText("11111");
    return null;
    } else {
    textField3.setText("22222");
    return null;
    catch (Exception e) {
    log("Cannot perform login for userid " + textField3.getText(), e);
    error("Cannot perform login for userid " + textField3.getText() + ": " + e);
    textField3.setText(e);
    return null;
    please give me idea how i get right result
    thank you

    please check Article-ID "Positions Hierarchy Edittor Shows Error Your Userarea Applet Has Caused A Runtime Exception [ID 1151488.1]" in MOS...
    HTH

  • OCILobwrite gives invalid hanlde error

    When I try to use ocilobwrite it gives invalid handle error , i.e rc =-2
    rc = OCILobWrite(dbsess->svcHandle() , pErrHandle, pLob, &amtp, 1, (char*) TSString,
    fileLen, OCI_ONE_PIECE, 0,
    (sb4 (*)(dvoid *, dvoid *, ub4 *, ub1 *)) 0,
    (ub2) 0, SQLCS_IMPLICIT );
    For the same seesion ocilobread ,OCIDateFrom text etc. seem to work. I am using a 10g client with a 11g database.
    Can, anyone give me any idea why is this happening?

    ahh , I see, thank you
    EDIT:
    Wait, wtf, I just went to modify it, and found I already have that line with the --no-check-certificate option already set for https
    EDIT-AGAIN:
    OK I got it, makepkg was using the regular http, and wget was redirected to https afterward but still using the regular http options from makepkg. Simply had to change http to https in pkgbuild
    Last edited by tjwoosta (2011-02-18 20:26:37)

  • Custom search using boolean attribute set to True gives no result

    I am setting up an auto-query using the custom search portlet. This is to show all items where a boolean custom attribute is checked, ie = True.
    In step 3 I have tried to set the operator to Equals to and the default value to True. This gives no results even though several items have this attribute set to True.
    The Auto Query check box is checked.

    Found that True = 1 in database. When set to this the search works.

  • Do IMAQ Cast Image or IMAQ Linear averages give different results when using different computers that are running under Windows XP ?

    Hello
    I'm currently developping an image processing algorithm using Labview 7.1 and the associated IMAQ Vision tools. After several tests, I found a weird result. Indeed, I put the labview algorithm - including the IMAQ VI on the library to get sure that I use all the time the same VI - on my memory stick and used it on two different computers. I tested the same picture (still in my memory stick) and had two very different results.
    After several hours trying to understand why, I found that there were a difference between the results given by both computers at the very begining of the algorithm. Indeed, I used a JPEG file.
    To open it, I first create an Image with IMAQ Create (U8). Then, I open it.
    Then in my first sub-VI, I use IMAQ Cast Image to be sure that the picture is a U8 grayscale picture.
    Right after that, I use the IMAQ Linear Averages. The results of this VI are different on the two computers.
    I tried several time on the same picture : one computer always give me the same result but the two computers give me a different result. So there is no random variable on the results.
    So my question is : Do IMAQ Cast Image or IMAQ Linear averages give different results when using different computers that are running under Windows XP ?
    My bet is on IMAQ Cast Image but I'm not quite sure and I do not undestand why. The labview and IMAQ are the same on both computers.
    The difference between the two computer are above :
    Computer 1 :
    Pentium(R) 4 CPU 3.20GHz with a RAM of 1Go. The processor is an Intel(R).
    The OS is windows XP Pro 2002
    Computer 2 :
    Pentium(R) 4 CPU 2.80GHz with a RAM of 512Mo. The processor is an Intel(R).
    The OS is windows XP Pro 2002.
    If anybody can help me on this problem, it would be really helpful.
    Regards
    Florence P.

    Hi,
    Indeed it's a strange behaviour, could you send me your VI and your JPEG file, (or another file that reproduces) so that I could check this inthere ?
    I'll then try to find out what's happening.
    Regards
    Richard Keromen
    National Instruments France
    #adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
    >> Découvrez, en vidéo, les innovations technologiques réalisées en éco-conception

  • Photosmart Premium C309 printer using Photo black cartridge when it is not printing pictures

    My printer has started using the Photo black cartridge a lot more than it used to.  I think it is using the Photo Black even when there are no images on the document.  I have had the printer for about 4 1/2 years, and it just started doing this in the past six months.  I used to only replace that cartridge about every 6 months.  Now I have to replace it about every 2 months even though I am not printing images.  I replaced the photo cartridge 3 days ago, and it is down about a third, and I have printed no images.  I saw something in one of the responses that talked about changing preferences in the Advanced tab of my printer, but the only option I see there for printing is Automatic.  I would appreciate any help I can get before my printer sucks up my bank account!

    Hi @smithloi , and welcome to the HP Forums!
    I see you're experiencing cartridge issues.  I would like to help!
    I'd recommend removing the cartridges, and performing a power reset.  Disconnect the power cord from the printer and the power outlet, then wait 60 seconds. After 60 seconds, plug the printer back in. Ensure you plug the printer directly to a wall outlet. Make sure to bypass any sort of surge protector or power bar.
    I'd then suggest running the following updates:
    Critical Update
    HP Update Software Utility
    HP Print Software Patch
    Good luck and please let me know the results of your troubleshooting steps. Thank you for posting on the HP Forums!
    Please click “Accept as Solution " if you feel my post solved your issue, it will help others find the solution.
    Click the “Kudos, Thumbs Up" on the right to say “Thanks" for helping!
    Jamieson
    I work on behalf of HP
    "Remember, I'm pulling for you, we're all in this together!" - Red Green.

  • Find the Column Name which gives Invalid Number Error

    Hi,
    There are about 150 columns in a table and data to this table is from a external source like flat file. when these data are loaded to the table for a particular column it gives Invalid Number Error. So need to find for Which Numeric Column a String Value is about to be inserted.
    since we are sure not whether the proper Values are coming from Source in Front End we pass the Value within ' quotes.
    So how do we get the Column for which the error is raised :-)

    If you are using SQL*Loader, the log will tell you which row and column has the error.
    Otherwise you may need to code your own debugging statements.

  • Stop it from using photo black ink for black text printing and where has the color ink gone?

    My HP Photosmart Prem C310 series all in one is using the Black Photo ink cartridge for text printing instead of the XL Black that I put in it for text printing. How can I get it to use the right cartridge for printing? Also, even though I have NOT printed ANY photo's and very few pages of text the new set of color cartridges I put in it a few months ago are almost empty. Why? How could they be almost empty when I have NOT printed anything in color? This is getting ridiculous replacing ink cartridges every few months WHEN I HAVE NOT BEEN PRINTING ANYTHING!!!
    The set of ink cartridges that came with it lasted for several months. Since then I've gone through two sets in less than a year. That's 3 sets of ink cartridges when I have only printed 3 photo's when I first set it up. And have only used les than a 1/4 of one package of printing paper. I've only put paper in it twice. Each time it was about a 1/4 inch or 3/8 of an inch thick stack of paper in the tray. I've even tried shutting the printer down when its not being used for a long period of time but the ink is still disapearing. Where is it going? Why is it going there? How do I stop it? This is rediculous. I may as well junk the thing even though it still works because I cant aford to keep feeding it ink when its just sitting there doing nothing most of the time.
    Thank you
    This question was solved.
    View Solution.

    I just got another email from HP about this problem wanting to know what I found for a solution to this problem. From all of the suggestions from the HP tec support all of them pretty much kept saying the same thing. That it is my fault that it's using so much ink because I have it on the wrong settings. One tec did slip and say that it doesn't matter what settings you have it on it will always use the Photo Black cartridge for printing plain black text and it doesn't matter if you have a X-Large Black cartridge in it for text printing because it was made to always use the Photo Black for text and even use some of the colors to blend with the black to make it stand out. Why anybody would need this when just printing shipping labels and things like that I don't know.
    Any who, The only solution for this problem is,,,, junk the printer and get a different brand & model of printer. Research it before buying to find out how much ink it wants to waste and if it will still print black text if it only has a black cartridge in it. I was going to get rid of mine by giving it to a friend since they don't have a printer. But since I want to keep him as a friend I decided not to give it to him. Since it cant be traded in for a different one even though it still works, Its going to the target shooting range the next time I go out shooting. Maybe I'll take a few video's clips of it getting blasted to pieces with a Ruger 10-22 .22 cal. rifle with 25 shot clips, a Ruger Mini-14 Ranch Rifle shooting .223 cal with a 30 shot clip, a Chinese SKS 7.62 with a 30 shot clip. And maybe use my Ruger P89 9mm pistol and put a couple 15 round clips of 9mm in it. If there's anything left I'll finish it off with a few 3" magnum loads of #2 steel shot with my 20 gauge shotgun.  Then I think I'll do the same thing to my Westinghouse 46" flat screen HDTV that just died.
       Then maybe I'll come back and post the video's of my "solution to this printers problem". It may not fix the problem, but it will be an entertaining way of getting rid of the problem.

  • Enterprise Manager does not give correct results

    I am using version 9.0.2.0.1 core edition(oc4j & web-cache).
    My application consists of business components, java beans and jsp. It is running fine.
    Oracle enterprise manager is not giving correct results of memory/cpu usage by oc4j_home and bc4j.
    Some times it does not gives result, when i refresh it twice or thrice it shows results.
    But results are not correct. On each refresh it gives different results.
    Then it is very hard to find which resuslt is correct.
    waiting for response,
    Tahir.

    i have been using 9iAS versions 102*, 90200, 90201, and now using 903.
    As stated above, some times the results for oc4j_home is displayed.
    But the memory/cpu usage for bc4j is never shown.
    Also, its radio-button is always disabled. while its status is "running".
    On BC4J page, it also shows results of application modules created. But these results are usually wrong.
    How bc4j will be enabled, and how its memory results can be get ???
    Tahir.

  • Calling PL/SQL Procedure In Another Schema Gives Unexpected Result

    I have a SQL Script that does this:
    conn pnr/<password for user pnr>;
    set serveroutput on;
    exec vms.disable_all_fk_constraints;
    SELECT owner, constraint_name, status FROM user_constraints WHERE constraint_type = 'R';
    and the disable_all_fk_constraints procedure that is owned by user 'vms' is defined as:
    create or replace
    procedure disable_all_fk_constraints is
    v_sql   VARCHAR2(4000);
    begin
    dbms_output.put_line('Disabling all referential integrity constraints.');
    for rec in (SELECT table_name, constraint_name FROM user_constraints WHERE constraint_type='R') loop
    dbms_output.put_line('Disabling constraint ' || rec.constraint_name || ' from ' || rec.table_name || '.');
    v_sql := 'ALTER TABLE ' || rec.table_name || ' DISABLE CONSTRAINT ' || rec.constraint_name;
    execute immediate(v_sql);
    end loop;
    end;
    When I run the SQL script, the call to vms.disable_all_fk_constraints disables the FK constrains in the 'vms' schema, whereas I wanted it to disable the FK constraints in the 'pnr' schema (the invoker of the procedure). I know that I could make this work by copying the disable_all_fk_constraints procedure to the 'pnr' schema and calling it as "+exec disable_all_fk_constraints;+" from within the SQL script but I want to avoid having to duplicate the PL/SQL procedure in each schema that uses it.
    What can I do?
    Thank you

    You have two issues to solve.
    First you need to write a packaged procedure that works with INVOKER rights. The default is DEFINER rights.
    The difference is excatly what you need. Usually the package has the rights from the schema where it is defined (=Definer rights). In your case schema VMS. Whereas you need the privileges from the user that calls the package (PNR).
    => Check out the documentation for INVOKER rights
    The second problem is that the view "user_constraints" will not give the results you expect when called from inside a procedure in another schema. An alternative could be to use the view DBA_CONSTRAINTS with a filter on the owner (where owner = 'PNR'). Not sure if there are other working possibilities. Well you could create a list of constraint names that you want to disable, instead of creating the list dynamically.
    And you could have another potential disaster creeping up upon you. If you run this thing, then at this moment you don't have any referential integrity anymore. You can't be sure that you can create the FKs again after this action. This is EXTREMLY DANGEROUS. I would never ever do this in any kind of production or test database. I would be very careful when I do it on a development database.

  • 0I_FYPER - Variable in BEx gives no result

    Hello all,
    I have a problem in BEx-reporting after a releasechange from BW3.5 to BI7.0 and at the same time SEM-BCS4.0 to SEM-BCS6.0 which belongs to the variable 0I_FYPER. I use this variable in the columns (only) in order to give the user the possibillity to define which periods to show. In the rows I use the rest for defining which numbers to bring up. It worked in BW3.5/SEM-BCS4.0 fine.
    I debuged the content of the variable in user-exit ZXRSRU01 (after processing the selection screen) and could find the data I entered but the query gives no result. Any ideas?
    Thank you for any feedback,
    Chris

    Hi Guru,
    We have a work around for your issue. Just create a customer Exit variable on the calendar month and use it in the filter.
    In the customer Exit variable read the Plant variable and if it is empty populate # as result. Else read the calmonth input variable and populate it as the result.
    Use the following snippet to read input ready variables.
    DATA: loc_var_range LIKE rrrangeexit.
    READ TABLE i_t_var_range WITH KEY vnam = 'VARNAME' INTO loc_var_range.
    (loc_var_range-low will have the value of the variable)
    Hope this helps.
    Regards.
    Shafi.

  • Invalid results with SDO_RELATE

    I am getting what appears to be invalid results when using the ANYINTERACT mask for the SDO_RELATE operator on our 8.1.7 system. The following query counts 85 linear geometries interacting with the "DC" polygon while the same spatial selection in ESRI's ArcGIS counts only 36.
    SQL> SELECT COUNT(rch_code)
    2 FROM os_linearrch r, state s
    3 WHERE s.st = 'DC'
    4 AND SDO_RELATE(r.fid, s.geom,
    5 'mask=ANYINTERACT querytype=WINDOW') = 'TRUE';
    COUNT(RCH_CODE)
    85
    I visualized the data with both ArcGIS and Oracle Spatial Index Advisor and it sure looks like ArcGIS got this one right and Oracle Spatial got it wrong. I can send some screen captures of those results if that would be helpful to anyone. Other evidence that OS is having problems is that if I take one of the linear geometries that doesn't really interact with DC (but OS says it does) and run a SDO_INTERSECTION with DC I get a NULL geometry back indicating that they don't really interact after all:
    SQL> SELECT SDO_GEOM.SDO_INTERSECTION(lr.fid, m.diminfo, s.geom, n.diminfo)
    2 FROM OS_LINEARRCH lr, state s, all_sdo_geom_metadata m, all_sdo_geom_metadata n
    3 WHERE lr.rch_code = '02070010000016'
    4 AND s.st = 'DC'
    5 AND m.table_name = 'OS_LINEARRCH'
    6 AND m.column_name = 'FID'
    7 AND n.table_name = 'STATE'
    8 AND n.column_name = 'GEOM';
    SDO_GEOM.SDO_INTERSECTION(LR.FID,M.DIMINFO,S.GEOM,N.DIMINFO)(SDO_GTYPE, SDO_SRID
    SQL>
    I have validated the DC polygon and at least one linear geometry that is matching but shouldn't. The actual ordinates have 6-7 digits of precision so I don't think that is the problem (especially considering the fact that SDO_INTERSECTION seems to be working as expected). I'll also post the metadata for the two layers in question below. Any help would be appreciated.
    Thanks, James
    OWNER TABLE_NAME
    COLUMN_NAME
    DIMINFO(SDO_DIMNAME, SDO_LB, SDO_UB, SDO_TOLERANCE)
    SRID
    TW STATE
    GEOM
    SDO_DIM_ARRAY(SDO_DIM_ELEMENT('X', -180, -60, .00000005), SDO_DIM_ELEMENT('Y', 1
    0, 130, .00000005))
    8265
    OWNER TABLE_NAME
    COLUMN_NAME
    DIMINFO(SDO_DIMNAME, SDO_LB, SDO_UB, SDO_TOLERANCE)
    SRID
    RAD OS_LINEARRCH
    FID
    SDO_DIM_ARRAY(SDO_DIM_ELEMENT('X', -180, -60, .00000005), SDO_DIM_ELEMENT('Y', 1
    0, 130, .00000005), SDO_DIM_ELEMENT('M', 0, 1214748.37, .00000005))
    8265

    Further testing showed that I was getting bad results because the polygon geometries were defined using the old 1-digit values for SDO_GTYPE and SDO_ETYPE. When I redefined the polygon geometries using 4-digit values things started working as expected.
    James

  • Regarding how to use index , please give me some example if possible

    Hello everybody:
           Thank you all for your help in  advance .
           would you please tell me how to use index, please give me  some example if possible.  couldn't thank you more!
          best regards .
         Frank

    Index is used for faster access of data base tables.
    An index helps to speed up selection from the database. An index is a sorted copy of selected database table fields.
    The primary index is always automatically created in an ABAP-based SAP system. It consists of the primary key fields of the database table. This means, for each combination of the index fields exists a maximum of one record in the table. This kind of index is called a UNIQUE index.
    If the primary index cannot be used to determine selection result, (for example, the WHERE condition does not contain any primary index fields), the system searches the whole table. To prevent this, and determine the selection result by searching through a restricted number of database records, you can create a secondary index.
    However, you should not define an index for all possible fields in the WHERE condition.
    Check this thread..u have more details.
    In which situation we can use the reading of  index

  • NonLinearFitWithMaxIters does not give correct results for phase

    Dear all,
    I am trying to fit a sin cuve with NonLinearFitWithMaxIters function of labwindows, but the results given by this function are dispersed a lot (the function does not give same results).
    In fact, I have two waveforms signals v and i (of 104 points), and I  find the phase between the two signals with NonLinearFitWithMaxIters.
    The two singals v and i are  measured with an osciloscope.
    I use the following fit functions :
    v=p1*sin(wt+p2) ;
    i=p3*sin(wt+p4) ;
    I use the NonLinearFitWithMaxIters function to fit the data and to have the parameters  p1, p2, p3, p4. Then, the phase is claculated as follow phase=p4-p3.
    The problem is that the phase calculted between the two signals (v and i) is different for each run for the same conditions.
    In fact, for a same condition, I measure different times the signals v and i, and I calculate the phase p4-p3, using NonLinearFitWithMaxIters. The goal is to calculate a mean of phases for the same condition. For example, there are cases where the phase=-5 degree, and other cases when phase=12 degree.
    For ten measures of v and i, the phase calculated is different. I get a big dispersion between the phases.
    I would like to know please why I have a big difference in phases calculated with the same condition?whern using NonLinearFitWithMaxIters.
    I read that this function does not give all time the correct results, is there a way to know when the results are not corrects and when they are correct ?
    And is there any solution to find accuratly the phase between the two waveforms.
    Thank you for your precious answer.

    The pseudocode which I am using is :
    v_err=NonLinearFitWithMaxIters(array_x,array_v,v_y_fit,1252,100,sinus,v_coef,2,&v_mean_squareError);
    The fit function is
    double sinus(double x, double a[],int noef){
        return (a[0]*sin((w*x)+a[1]));
     I use the same inital coeficient of v_coef for each run :     
    v_coef[0]=0.03;
    v_coef[1]=0.2;
    These coeficient are choosen arbitrary.
    In this case, the number of points of the data is 1252 (the data of array_v).
    The number of iterations is 100.
    For the array_x, the distance between adjacents values of the array is dt=0.4*1e-9(difference between array_x[i] anv array_x[i+1]=dt=0.4*1e-9 ).
    for (i=0;i<1252;i++){
    array_x[i]=i*(0.4*1e-9);
    The means square error returnned by the function when it is complished is  small, of the order of 0,001.
    I read the help
    « From the help:
    You must pass a pointer to the nonlinear function f(x,a) along with a set of initial guess coefficients a. NonLinearFitWithMaxIters does not always give the correct answer. The correct output sometimes depends on the initial choice of a. It is very important to verify the final result.
    That means that the function cannot be used, as it does not give correct results. How
    can we check if the results are good or not ? in my case.
    I think that in my case, the function does not give correct results, but how can I check if the results are good, or not ? The mean square error is small.

Maybe you are looking for