various aspects or features of this disclosure are described with reference to the drawings , wherein like reference numerals are used to refer to like elements throughout . in this specification , numerous details are set forth in order to provide a thorough understanding of this disclosure . it should be understood , however , that certain aspects of disclosed subject matter may be practiced without these specific details , or with other methods , components , materials , etc . in other instances , well - known structures and devices are shown in block diagram form to facilitate describing the subject disclosure . modulation transfer function ( mtf ) is one of the most important parameters by which image quality is measured . optical designers and engineers frequently refer to mtf data , especially in applications where success or failure is contingent on how accurately a particular object is imaged . the iso 12233 standard fails to provide accurate mtf results for optical systems under several important imaging conditions and , in some instances , fails to produce any result at all . for example , the standard is not accurate in measuring mtf based on highly distorted images . this type of image is often captured , for example , by wide field of view ( wfov ) cameras . in wfov cameras , barrel distortion caused by the lens makes straight edges in the object plane become curved in the image plane . distorted images are problematic for the iso 12233 standard , which primarily relies on straight edges in the image plane to estimate mtf . as will be shown below , image distortion can result in complications so severe that the iso 12233 standard cannot be used . it is possible to measure mtf from examining and analyzing an optical system directly , however , in many instances the optical system is not available for inspection , only images taken by the optical system are accessible . when the image is too distorted to use iso 12233 , one conventional technique is to undistort the image digitally using a computer and apply iso 12233 to the altered image . however , digital undistortion introduces artifacts and results in measuring mtf of a processed image instead of the original image , which lowers the accuracy of the calculation . another conventional technique is to attempt to capture an image of something that is curved in the opposite direction of the natural curve present in the barrel distortion of the image in order to achieve a straight edge . however , this method is time consuming and requires trial and error . the disclosed invention provides a significant improvement to the optical systems technological field by providing a way to determine highly accurate mtf of an optical system based on images that previously were extremely problematic to use by conventional methods . the embodiments disclosed herein provide a novel , improved approach to determine mtf , even from a distorted image . a set of polynomials , each with a different polynomial degree , is created to estimate an edge detected in the image . from among this set , a polynomial is selected and used to estimate the mtf , resulting in a more accurate figure than conventional techniques . the technique disclosed herein will be referred to as a free form ( ff ) mtf algorithm . fig1 shows an flowchart 1200 example of the ff mtf algorithm . at operation 100 , edge detection is performed on each row of an image , for example , using a technique such as canny edge detection , or a modified , less complex canny edge detection technique . in the modified canny edge detection , edge detection is run on each image row independently . each row is differentiated ( x ′( i )= x ( i + 1 )− x ( i ). the resulting data is the gradient along the image row . the differentiated data is then smoothed with a ( gaussian ) low - pass filter . the data is then thresholded with an adaptive noise level ( any value less than some value is set to 0 ). this thresholded data is then normalized 0 - to - 1 . this canny - like edge profile is computed for all rows in the region of interest where we compute the mtf ( in the steps above ). edges can be computed on image columns , for example , to determine a vertical mtf . at operation 200 , edge points that were estimated in operation 100 are used to generate one or more polynomials that are used to improve the edge position accuracy . at operation 300 the algorithm selects a polynomial from the set of one or more polynomials . this can be done by analyzing residual errors in each polynomial fit . as the edge fit polynomial degree is increased , the residual errors decrease . when the residual error is plotted as a function of the polynomial degree it falls quickly and then flattens out , eventually dropping to 0 . a polynomial is selected to estimate the edge by attempting to select the highest degree polynomial without over fitting . this is done by estimating when over fitting has occurred by measuring the difference in the residual errors of successive polynomial fits . when this value is less than a threshold amount , the algorithm determines that over fitting has occurred . the selected polynomial can have a degree at least higher than a second degree . it should be noted that for n rows ( and implicitly n points ), an n - 1 degree polynomial will perfectly fit all points , with zero residual error . however , a perfect fit is detrimental to computing an accurate mtf , due to over - fitting of the data . to avoid selecting an over - fit polynomial , an mtf curve can be computed for each polynomial to determine the extent of the detrimental effect of over - fitting . in operation 400 , each row is shifted by an amount determined by the polynomial to create a super - sampled edge spread function . this super - sampled edge spread function can be compatible with the iso12233 standard . at operation 500 the edges are binned and averaged based on their position . the data can be binned such that the super - sampled line spread function has a higher resolution than the original row data in the image . for example , the resolution can be at least four times the resolution of the original row data . at operation 600 the super - sampled line spread function is differentiated , windowed by a hamming filter and finally fourier transformed and normalized to determine the mtf . at operation 700 the optical system configuration can be adjusted based on the mtf . a pseudo code example embodiment of the disclosed algorithm is shown below in algorithm 1 . the computational complexity of the disclosed algorithm is o ( num columns *( num rows ) 2 , where num columns is the number of columns in the image and num rows is the number of rows in the image : fig1 shows a synthetically generated circular edge and fig2 shows the results of the disclosed ff algorithm , how it compares to the iso12233 standard , and how it compares to the theoretically expected mtf value of sinc ( xf x )= sin ( πxf x )/ πxf x . note that f x is spatial frequency and x is pixel sampling distance . as can be seen , the iso12233 standard produces inaccurate results based on the circular edge while the disclosed ff algorithm provides a significant improvement over the iso12233 standard with a measurement that closely mirrors the theoretical value . fig3 shows an image collected from a dslr camera . the gray box in this image shows a tilted straight edge used to calculate the mtfs shown in fig4 . in this case the iso 12233 standard is workable due to the presence of the straight edge in the image . both the iso 12233 standard and the disclosed ff algorithm result in the same measurements . fig5 show another image collected from the same dslr . the gray box in this image shows a convex edge that represents a distorted straight edge . the mtfs calculated from this edge are shown in fig6 . here , the slight distortion of the edge results in a difference between iso12233 standard mtf calculations of the optical system and the disclosed ff algorithm calculations . fig7 show another image collected from the same canon dslr . the gray box in this image shows a concave edge that represents a distorted straight edge . the mtfs calculated from this edge are shown in fig8 . as can be seen , the iso 12233 standard is not suitable for making an mtf determination based on the concave edge , while in contrast the disclosed ff algorithm produces consistent and more accurate results . fig9 shows another image collected from the same dslr camera . the gray box in this image shows a polynomial edge that represents a distorted straight edge . the mtf of this edge calculated by the ff algorithm is shown in fig1 . note that the disclosed ff algorithm provides a solution for evaluating the optical system here even though the conventional iso12233 standard did not produce a result for this edge at all . an “ mtf50 ” sensitivity is defined herein as the spatial frequency where the mtf is equal to 0 . 5 , and sensitivity is defined as the standard deviation divided by the mean of the statistic we are measuring . in fig1 the calculated mtf50 sensitivity to edge selection , i . e . if the dotted - line box is moved up or down by a few 10 ′ s of rows , is approximately 5 % for both the disclosed ff algorithm and the iso12233 standard . however , the iso12233 standard underestimates the mtf50 by a magnitude of approximately 6 times . in fig3 , 7 and 9 , i . e . representations of images captured with a dslr camera using a high end fisheye lens , the sensitivity to edge selection for the disclosed ff algorithm is less than 5 % while the variation for the conventional iso12233 standard is more than 51 %. in addition , the iso12233 standard underestimates mtf50 by a magnitude of around 1 . 6 times . for many edges iso12233 did not produce a result . the problematic failure of the iso12233 standard to produce consistent , accurate results in these types of images is overcome by the improvements of the disclosed ff algorithm . the disclosed ff algorithm can be used to estimate system mtf even for complexly distorted images including arbitrary smooth edges . this allows the mtf of optical systems to be characterized across the field of view . furthermore , the disclosed algorithm is consistent across straight and distorted sample images , achieving the same results as the iso12233 standard on straight edges . the disclosed ff algorithm is more robust to low light , i . e . low signal to noise ratio ( snr ), images than the iso12233 standard . the disclosed ff algorithm is also more robust to noise in the image than the iso12233 . the algorithm can be improved at handling noise by using a canny - like edge estimation algorithm or other edge detection algorithm that decreases the amount of noise in an image and reduces the image data set . since mtf is one of the best tools available to quantify the imaging performance of an optical system , knowing the mtf of each lens and sensor within a system allows a designer to make the appropriate selection , for example , when optimizing for a particular resolution . a wide field of view ( wfov ) system designer can now determine mtf using the disclosed ff algorithm in various configurations and accurately select the combination provides the desired results . embodiments of the presently disclosed subject matter may be implemented in and used with a variety of component and network architectures . fig1 is an example computing device 20 suitable for implementing embodiments of the presently disclosed subject matter . the device 20 may be , for example , a desktop or laptop computer , or a mobile computing device such as a smart phone , tablet , or the like . the device 20 may include a bus 21 which interconnects major components of the computer 20 , such as a central processor 24 , a memory 27 such as random access memory ( ram ), read only memory ( rom ), flash ram , or the like , a user display 22 such as a display screen , a user input interface 26 , which may include one or more controllers and associated user input devices such as a keyboard , mouse , touch screen , and the like , a fixed storage 23 such as a hard drive , flash storage , and the like , a removable media component 25 operative to control and receive an optical disk , flash drive , and the like , and a network interface 29 operable to communicate with one or more remote devices via a suitable network connection . the bus 21 allows data communication between the central processor 24 and one or more memory components , which may include ram , rom , and other memory , as previously noted . typically ram is the main memory into which instructions , an operating system and application programs are loaded . a rom or flash memory component can contain , among other code , the basic input - output system ( bios ) which controls basic hardware operation such as the interaction with peripheral components . applications resident with the computer 20 are generally stored on and accessed via a computer readable medium , such as a hard disk drive ( e . g ., fixed storage 23 ), an optical drive , floppy disk , or other storage medium . the central processor 24 can execute instructions stored on the one or more memory components . the instructions can include operations described above regarding the disclosed ff mtf algorithm . the fixed storage 23 may be integral with the computer 20 or may be separate and accessed through other interfaces . the network interface 29 may provide a direct connection to a remote server via a wired or wireless connection . the network interface 29 may provide such connection using any suitable technique and protocol as will be readily understood by one of skill in the art , including digital cellular telephone , wifi , bluetooth ( r ), near - field , and the like . for example , the network interface 29 may allow the computer to communicate with other computers via one or more local , wide - area , or other communication networks , as described in further detail below . many other devices or components ( not shown ) may be connected in a similar manner ( e . g ., document scanners , digital cameras and so on ). conversely , all of the components shown in fig1 need not be present to practice the present disclosure . the components can be interconnected in different ways from that shown . the operation of a computer such as that shown in fig1 is readily known in the art and is not discussed in detail in this application . code to implement the present disclosure can be stored in computer - readable storage media such as one or more of the memory 27 , fixed storage 23 , removable media 25 , or on a remote storage location . more generally , various embodiments of the presently disclosed subject matter may include or be embodied in the form of computer - implemented processes and apparatuses for practicing those processes . embodiments also may be embodied in the form of a computer program product having computer program code containing instructions embodied in non - transitory and / or tangible media , such as floppy diskettes , cd - roms , hard drives , usb ( universal serial bus ) drives , or any other machine readable storage medium , such that when the computer program code is loaded into and executed by a computer , the computer becomes an apparatus for practicing embodiments of the disclosed subject matter . embodiments also may be embodied in the form of computer program code , for example , whether stored in a storage medium , loaded into and / or executed by a computer , or transmitted over some transmission medium , such as over electrical wiring or cabling , through fiber optics , or via electromagnetic radiation , such that when the computer program code is loaded into and executed by a computer , the computer becomes an apparatus for practicing embodiments of the disclosed subject matter . when implemented on a general - purpose microprocessor , the computer program code segments configure the microprocessor to create specific logic circuits . in some configurations , a set of computer - readable instructions stored on a computer - readable storage medium may be implemented by a general - purpose processor , which may transform the general - purpose processor or a device containing the general - purpose processor into a special - purpose device configured to implement or carry out the instructions . embodiments may be implemented using hardware that may include a processor , such as a general purpose microprocessor and / or an application specific integrated circuit ( asic ) that embodies all or part of the techniques according to embodiments of the disclosed subject matter in hardware and / or firmware . the processor may be coupled to memory , such as ram , rom , flash memory , a hard disk or any other device capable of storing electronic information . the memory may store instructions adapted to be executed by the processor to perform the techniques according to embodiments of the disclosed subject matter . the foregoing description , for purpose of explanation , has been described with reference to specific embodiments . however , the illustrative discussions above are not intended to be exhaustive or to limit embodiments of the disclosed subject matter to the precise forms disclosed . many modifications and variations are possible in view of the above teachings . the embodiments were chosen and described in order to explain the principles of embodiments of the disclosed subject matter and their practical applications , to thereby enable others skilled in the art to utilize those embodiments as well as various embodiments with various modifications as may be suited to the particular use contemplated .