python curve fitting optimization GUI - user-interface

I'm new to programming but i have to do a project in python which is about to make a GUI for curve fitting. My inputs are the data points and the functions that should be fitted. The method of fitting is suggested to be chooseable for example least squares method or other fitting methods in the GUI. My problem is when i find some decent resource i get an error code when installing some packages that will be used. I use anaconda for python. My question is where should i start this project ? Could you guys suggest some decent resource for this kind of problem?
Thanks,
Adam

I have several of these done with different GUI frameworks, all have curve fitting and surface fitting with plots of fitted curves and surfaces. All have the same functionality, and should make a good example for a similar project. My personal recommendation is tkinter.
https://github.com/zunzun/tkInterFit (tkinter)
https://github.com/zunzun/wxPythonFit (wxpython)
https://github.com/zunzun/pyQt5Fit (pyqt5)
https://github.com/zunzun/pyGtkFit (pygtk)

Related

Plugin to control NURBS to mesh curve divisions

I've written a few plugins using C# and I'm familiar with Python, however I find the documentation in the SDK very difficult to understand. My previous plugins that I've written are largely based on modifications to collections of sample code.
Using Rhino3d, I'd like more control over how it meshes curves. I'd like to control the number of mesh vertex divisions on a curve/arc using my algorithm based on the angle and radius of the curve. I actually already have a plugin that calculates the number of divisions (range) to use.
Currently I am forced to export it into ANSYS APDL (where I can directly specify divisions by selecting each line), meshing, then importing back to rhino.
in fact mesh is a graph and Ansys can handle graphs, but Ansys SDK is tricky... as a beginner check this posts:
http://sysmagazine.com/posts/140397/
alyms-alis.blogspot.ch/2013/01/integration-c-and-module-of-ansys.html
meshing is a science itself. There are some algorithms and approaches which are working fine and found implementation as http://www.mi.fu-berlin.de/en/math/groups/ag-geom/publications/db/KNP07-QuadCover.pdf

Extracting Color Features from an Image

I would like to extract Color and Texture features from Training images for the purpose of automatic annotation . On Googling I found algorithms some algorithms.
Can somebody guide me to the specific tools or existing code for this task preferably in C++.
Thanks
OpenCV is a large computer vision library which has a C++ interface. It provides functions to calculate a large number of colour and texture features. Perhaps you should look at some of the tutorials to learn what it can do: http://docs.opencv.org/doc/tutorials/tutorials.html
Good luck!

perlin simplex worley noise libraries for tiling in javascript or HTML5 in general?

I am curious if there are libraries already developed for creating these noises in javascript?
I have searched the web for about two hours looking for libraries in javascripts. I have seen this implementation for the simplex noise:
https://gist.github.com/304522
but I have not seen any libraries made up specifically for javascript.
If no one knows of any libraries then link suggestions on how to develop these functions would be great as well. I am currently doing Google searches for everything I have asked here I just figured better to have multiple web crawlers helping me out concurrently :) Also if someone on stack overflow has already found a quality site then even better.
Thanks guys!
Here you can find a thoroughly explanation of the algorithm, also the original code from Worley (explained in Texturing and modelling. A procedural approach) ported to Processing.
At the moment I'm working deploying to Javascript.
For the tiling part of your question: if you have a Perlin or Simplex noise function you don't really need a library to create tiling images because the math is really not that difficult. What is difficult is understanding how it works. For instance: a spherical noise map is way easier than simple 2D tiling image because you need to work with four dimensions for the latter.
I once wrote a blog post explaining in detail how to create tiling noise (including Javascript code examples).
It shows you how to tile in linear, cylindrical, planar and spherically (including cubical panorama).
I've made a javascript app that renders perlin/simplex noise to an html5 canvas, you can find it here: http://lencinhaus.github.com/canvas-noise
Well it's not a proper library, but the javascript code contains implementations of value noise, perlin noise (both in classic and improved versions) and simplex noise, all derived from the original Perlin's C implementations (or a more optimized java version for simplex noise, see the references in the code). You can tweak the noise parameters visually and immediately see the results in the browser, so maybe it can be useful for you.
hope that helps!

Is there any algorithm for generating 3d clouds?

So Id love to see an algorithm for generating 3d cloud objects. as realistic as possible. I know that there are different cloud types But I am moust interested in such cloud tupes like
(source: weather.gov)
(source: weather.gov)
so can any one point to algorithm or just a C\C++\C#\AS3 or any other language lib that can do such thing?
You could try Procedural Generation or even Particle Systems.
Here is a page which seems to have a comprehensive list of various cloud generation methods: Vterrain.Org's page on Clouds.
Hope that helps!
I'm not sure if there's a library that implements this, but this SIGGRAPH paper (http://graphics.cs.brown.edu/games/CartoonSmoke/) outlines a method for generating cartoon clouds that look very much like the one you've posted.
You could do that in any language with any drawing library ! For example, in C++ with Ogre
You could also generate it with a 3D modeler as Blender or 3DSMax, depending on what you want to do with it !
However, I don't know if algorithms to generate clouds are freely available, you should give it a shot in Google.

robust algorithm for surface reconstruction from 3D point cloud?

I am trying to figure out what algorithms there are to do surface reconstruction from 3D range data. At a first glance, it seems that the Ball pivoting algorithm (BPA) and Poisson surface reconstruction are the more established methods?
What are the established, more robust algorithm in the field other than BPA and Poisson surface reconstruction algorithm?
Recommended research publications?
Is there available source code?
I have been facing this dilemma for some months now, and made exhaustive research.
Algorithms
Mainly there are 2 categories of algorithms: computation geometry, and implicit surfaces.
Computation Geometry
They fit the mesh on the existing points.
Probably the most famous algorithm of this group is powercrust, because it is theoretically well-established - it guarantees watertight mesh.
Ball Pivoting is patented by IBM. Also, it is not suitable for pointclouds with varying point density.
Implicit functions
One fits implicit functions on the pointcloud, then uses a marching-cube-like algorithm to extract the zero-set of the function into a mesh.
Methods in this category differ mainly by the different implicit functions used.
Poisson, Hoppe's, and MPU are the most famous algorithms in this category. If you are new to the topic, i recommend to read Hoppe's thesis, it is very explanatory.
The algorithms of this category usually can be implemented so that they are able to process huge inputs very efficiently, and one can scale their quality<->speed trade-off. They are not disturbed by noise, varying point-density, holes. A disadvantage of them is that they require consistently oriented surface normals at the input points.
Implementations
You will find small number of free implementations. However it depends on whether You are going to integrate it into free software (in this case GPL license is acceptable for You) or into a commercial software (in this case You need a more liberal license). The latter is very rare.
One is in VTK. I suspect it to be difficult to integrate (no documentation is available for free), it has a strange, over-complicated architecture, and is not designed for high-performance applications. Also has some limitations for the allowed input pointclouds.
Take a look at this Poisson implementation, and after that share your experience about it with me please.
Also:
here are a few high-performance algorithms, with surface reconstruction among them.
CGAL is a famous 3d library, but it is free only for free projects.
Meshlab is a famous application with GPL.
Also (Added August 2013):
The library PCL has a module dedicated to surface reconstruction and is in active development (and is part of Google's Summer of Code). The surface module contains a number of different algorithms for reconstruction. PCL also has the ability to estimate surface normals, incase you do not have them provided with your point data, this functionality can be found in the features module. PCL is released under the terms of the BSD license and is open source software, it is free for commercial and research use.
If you want make some direct experiments with various surface reconstruction algorithms you should try MeshLab, the mesh-processing system, it is open source and it contains implementations of many of the previously cited surface reconstruction algorithms, like:
Poisson Surface Recon
a couple of MLS based approach,
a ball pivoting implementation
a variant of the Curless volume based approach
Delaunay based techniques (Alpha shapes and Voronoi filtering)
tools for computing normals from scattered point sets
and many other tools for comparing/measuring/cleaning/simplifying the resulting meshes.
Sources are protected by GPL, so you could not use them in a commercial closed source project, but it is very important to get the right feeling about the properties of the various surface reconstruction algorithms (how sensitive to noise they are, the speed, the robustness to outliers, how they preserve fine details etc etc) before starting to implement one of them.
You might start looking at some recent work in the field - currently something like Fast low-memory streaming MLS reconstruction of point-sampled surfaces by Gianmauro Cuccuru, Enrico Gobbetti, Fabio Marton, Renato Pajarola, and Ruggero Pintus. Its citations can get you going through the literature pretty quickly.
While not a mesh representation, an ex-colleague recommended me this link
to source code for a Thin Plate Spline method:
Link
Anyone tried it?
Not sure if it's exactly right for your case, since it seems weird that you omitted it, but marching cubes is commonly mentioned in cases like these.
As I had this problem too, I did develop and implement my own point cloud crust algorithm. The sources, as well as the documentation, can be found on github.com: https://github.com/meixxi/PointCloudCrust. The algorithm is implemented in Java.
Maybe, this can help you. You can find also a short python script on the page which illustrates how to use the library. Have fun!
Here on GitHub, is a open source Mesh Processing Library in C++ by Dr. Hugues Hoppe, in which the surface reconstruction program Recon is a good option for your problem...
There is 3D Delaunay tool by Geometric Tools. This tool is used DirecX and OpenGL. Unfortunately, you may need buy a book to see actual example code of the library. You still read the code and figure out.
Matlab also introduced a surface reconstruction tool using Delaunay, delaunayTriangulation class.
You might be interested in Alpha Shapes.

Resources