Senin, 20 April 2009

MVtec Halcon, the champion in Machine Vision software




HALCON defines the state of the art in machine vision software. It provides a comprehensive vision library and is always based on the latest and most advanced technology. Whatever your task, HALCON will solve it, fast and with highest accuracy.
Vision Development Environment A professional image processing tool must be more than just a library of image processing operators.

Solving image processing tasks is just one part of a complete solution, which comprises other software components like process control or database access, and hardware components from illumination to image acquisition devices and many other mechanical components. Therefore, it is important that the image processing system is easy to use and can be integrated into the development cycle in a flexible
manner.

To achieve this, HALCON takes care of all important aspects:

• The software development is supported by HALCON’s IDE (integrated development environment),consisting of HDevelop and HDevEngine. HDevelop is a highly interactive development tool that enables a quick development of image processing tasks. Via HDevEngine, you can directly execute HDevelop programs and procedures from your C++, C#, Visual Basic, or C application. As an alternative, HDevelop can also export programs and procedures in your programming language.



• The problem-oriented documentation covers all levels from a quick access to important information up to a detailed discussion of advanced topics.

• These descriptions are combined with hundreds of examples for an intuitive understanding of the solutions, which can serve as templates to shorten the development time.

• Last but not least, HALCON provides open interfaces for efficient data exchange, to integrate own operators, or to access specialized hardware round off the system.

HALCON fulfills all requirements of a professional vision library:

• It comprises methods for all standard and advanced types of image processing from image acquisition from many different devices up to the advanced shape-based matching.

• Apart from image processing functionality, HALCON provides tools that are typically needed in the context of machine vision applications, e.g., for the communication via sockets or the serial interface, file handling, data analysis, arithmetic operations, or classification.

• HALCON offers flexible ways of parallelization to exploit multi-processor or multi-core hardware to speed up an application.

• The HALCON library that is used in an application will not be visible to the end user and requires only minimum resources in an installation, which makes it perfect for OEM developments.

Key Features

Leading-Edge Technologies In addition to the full set of standard machine vision methods, HALCON offers functionality that is outstanding in the field of machine vision libraries, e.g., 3D camera calibration, shape-based and componentbased
matching, subpixel-precise edge and line extraction, subpixel contour processing, reconstruction via binocular stereo, arbitrary regions of interest, and much more.
Apart from this, many methods that are known from other libraries are offered with a much better performance.

An example for this is the morphology, which is up to 100 times faster than in other products, and at the same time offers much more flexibility.

One Software for All Applications

Thanks to its more than 1300 operators, HALCON is at home in all areas of research, development, and production where images are processed and analyzed. Numerous customers all over the world already use HALCON to solve their machine vision tasks.
Protection of Investment By choosing HALCON, you choose independence: Switch to another operating system? HALCON supports a wide range of Windows, Linux, and UNIX platforms, including x64 systems. Migrate your applications from C++ to C#? HALCON can be used within various programming languages and environments.




Your application grows and needs more computing power? Switch to a multi-processor
or multi-core computer and HALCON will automatically parallelize its execution.

Last but not least, you are free to choose the image acquisition hardware that fulfills your requirements, because HALCON provides ready-to-use interfaces to a large number of image acquisition devices (analog, digital, IEEE 1394, CameraLink).


Rapid Prototyping


In many cases it is important to determine quickly if and how a problem can be solved. With HDevelop, HALCON’s interactive development environment, you can rapidly develop machine vision applications.

Besides being a fully-fledged program interpreter with debug functions, HDevelop assists you actively,e.g., by suggesting operators and by automatically visualizing the result of an operation.

With the help of integrated tools you can inspect images and results and quickly find suitable parameter values that solve your vision task.

Open Architecture


HALCON offers a comprehensive vision library but does not claim to be all-encompassing. Therefore, it is based on an open architecture. Thus, you can extend HALCON by integrating your own vision functionality in form of new operators.

And if you want to use an image acquisition device that HALCON does not yet support you can use the images directly or create an image
acquisition interface for it.

View Adhiguna Mahendra,Ph.D's profile on LinkedIn

Kamis, 16 April 2009

OpenCL, the opensource parallel computing platform


OpenCL (Open Computing Language) is a framework for writing programs that execute across heterogeneous platforms consisting of CPUs, GPUs, and other processors. OpenCL includes a language (based on C99) for writing kernels (functions that execute on OpenCL devices), plus APIs that are used to define and then control the heterogeneous platform. OpenCL provides parallel programming using both task-based and data-based parallelism.

The purpose of OpenCL is analogous to that of OpenGL and OpenAL, which are open industry standards for 3D graphics and computer audio respectively. OpenCL extends the power of the GPU beyond graphics (GPGPU). OpenCL is managed by the non-profit technology consortium Khronos Group.
OpenCL was initially developed by Apple Inc., which holds trademark rights, and refined into an initial proposal in collaboration with technical teams at AMD, Intel and Nvidia. Apple submitted this initial proposal to the Khronos Group. On June 16, 2008 the Khronos Compute Working Group was formed with representatives from CPU, GPU, embedded-processor, and software companies. This group worked for five months to finish the technical details of the specification for OpenCL 1.0 by November 18, 2008. This technical specification was reviewed by the Khronos members and approved for public release on December 8, 2008.

OpenCL 1.0 is scheduled to be introduced in Mac OS X v10.6 ('Snow Leopard'). According to an Apple press release:

Snow Leopard further extends support for modern hardware with Open Computing Language (OpenCL), which lets any application tap into the vast gigaflops of GPU computing power previously available only to graphics applications. OpenCL is based on the C programming language and has been proposed as an open standard.

AMD has decided to support OpenCL (and DirectX 11) instead of the now deprecated Close to Metal in its Stream framework.

RapidMind announced their adoption of OpenCL underneath their development platform, in order to support GPUs from multiple vendors with one interface. NVIDIA announced on December 9, 2008 to add full support for the OpenCL 1.0 specification to its GPU Computing Toolkit.

The OpenCL specification is under active development at Khronos - which open to any interested company to join.

The interesting thing about OpenCL for me is it's interoperability with OpenGL. Both APIs may handle the the same type of workloads and share the textures, Buffer Objects and Renderbuffers. OpenCL objects are created from OpenGL objects, for example Vertex and image data generated with OpenCL may the rendered with OpenGL, on the other hand, images rendered with OpenGL may be post-processed with OpenCL kernels.




View Adhiguna Mahendra,Ph.D's profile on LinkedIn