-
Posts
393 -
Joined
-
Last visited
-
Days Won
32
Content Type
Profiles
Forums
Downloads
Gallery
Everything posted by vugie
-
I have a proposition for a new LAVA 2.0 top banner. Because you liked my design for t-shirt, I modyfied it a little bit to suit it better for horizontal orientation. It looks like this: It is suited rather for light background (just like block diagrams are), but I can think of modyfing it for dark ones. For blue or dark blue also some colors should change. What do you think?
-
I just wanted to inform that after total rewrite of everything (to LVOOP) I reached exactly the same functionality as it was before. That's a progress, isn't it? So now it's time to start extending VIpreVIEW. For the beginning, following Yair's suggestions, I designed a logo: I also attached recently generated swf, as these from previous posts are gone, but I'dont know how to embed it in the post... BBcode is not working. test3.swf Also if someone who got the power could move this topic to uncertified code repository where is much better place for it?
-
Version 1.0.1
4,654 downloads
Copyright © 2009, Wojciech Golebiowski (vugie) All rights reserved. Author: Wojciech Golebiowski (w_golebiowski (at) tlen.pl) Name: BitMan (Bitmap Manipulation Library) Type: framework, library LabVIEW version: 8.2.1 Description: Bitman library is designed for image processing based on a specially-defined structure to store the image, and a system of filters. It is not only a set of tools performing specific operations on images, but also a framework to help create your own image processing functions with a mechanism called "dynamic filters". Library contains few basic built-in filters. Their design concentrates on the versatility, ease of use, and the clearance of the code. This results in a decrease of efficiency and consequently, processing of large images using standard filters may be slow. But this is not a limitation of the framework and it is possible to create user filters, which may - as a more specialized - operate much more efficiently. Built-in filters are good for processing of relatively small images and can be used to support programming user interfaces, operations on the icons, creating graphical documents, etc. Library was written using object-oriented programming techniques (LVOOP). Installation Libraries can be used after unpacking it anywhere on disk. Access to all of the features is possible then by opening the library file "BitMan Lib.lvlib". However, it is most convenient to copy entire BitMan directory to the directory \user.lib. After the restart of LabVIEW on a pallet, in the User Libraries, sub-palette "BitMan" will appear. Documentation A description of all VIs from palette is available in the file "docs\BitMan docs.html". Descriptions are also included (for all functions) in the Documentation section of the VI Properties dialog, as well as for more important front panel controls and, as such, are available through the LabVIEW context help. Examples Examples of applications can be found in the directory "examples" (examples of the use of the library itself) and the directory "examples\Dynamic Filters" (examples of the creation of filters). Examples along with descriptions in the diagrams are an integral part of the documentation. Functionality The most important class it the Bitmap class. It contains structure for storing an image (the description of the structure may be found in documentation under Bitmap type.ctl) and the basic access methods. The main assumption of this structure is to store the image in three-dimensional U8 array, where subsequent dimensions mean respectively height (y coordinate), width (x) and subsequent color channel. Number of channels in the image depends on the bit depth, additionally you can define any number of user channels. It is possible to store pictures 1 -, 4 -, 8 -, 24 - and 32-bit, while the 32-bit means here CMYK color model, rather than - as is sometimes used - RGB images with transparency . Transparency (the so-called alpha channel) is stored in a separate field of the structure. Support for CMYK images is not fully implemented yet. The processing of images is done by the use of system of filters implemented in General Filter class. This class stores a reference to strictly typed VI processing an image and its runtime parameters. The filter is launched with Filter Run method, which uses the dynamic call mechanism. Filter runtime parameters are stored in the object as a variant variable for unified method for passing them. Users can create their own filters in two ways: by using methods of Dynamic Filter class and filter template or by creating a new class inheriting from General Filter class. It is also possible to create a function-specific interfaces for the use of filters as the normal LV function. Inheriting and transparent interface is the way buit-in filters work, so they are also a specific example of use of the library. Template to create your own filters may be found in "typedefs". Using of dynamic filters is supported Library Filter class designed for managing filters. It makes use of the functional global mechanism for storing and providing access to pre-loaded filters with assigned names. It can call the filters by using short names anywhere in the code, without a burdensome wiring of filter objects. Another supporting class is Bitmap With Filters class, inheriting from the Bitmap class and extending its functionality with a possibility of using a sequence of filters. More detailed descriptions of individual functions and applications can be found in the above mentioned documentation and examples. Version History: 1.0.0: Initial release of the code. 1.0.1: Packaged version with small bugfix -
Name: BitMan (Bitmap Manipulation Library) Submitter: vugie Submitted: 04 Jul 2009 File Updated: 03 Jan 2011 Category: Machine Vision & Imaging LabVIEW Version: 8.2 License Type: BSD (Most common) Copyright © 2009, Wojciech Golebiowski (vugie) All rights reserved. Author: Wojciech Golebiowski (w_golebiowski (at) tlen.pl) Name: BitMan (Bitmap Manipulation Library) Type: framework, library LabVIEW version: 8.2.1 Description: Bitman library is designed for image processing based on a specially-defined structure to store the image, and a system of filters. It is not only a set of tools performing specific operations on images, but also a framework to help create your own image processing functions with a mechanism called "dynamic filters". Library contains few basic built-in filters. Their design concentrates on the versatility, ease of use, and the clearance of the code. This results in a decrease of efficiency and consequently, processing of large images using standard filters may be slow. But this is not a limitation of the framework and it is possible to create user filters, which may - as a more specialized - operate much more efficiently. Built-in filters are good for processing of relatively small images and can be used to support programming user interfaces, operations on the icons, creating graphical documents, etc. Library was written using object-oriented programming techniques (LVOOP). Installation Libraries can be used after unpacking it anywhere on disk. Access to all of the features is possible then by opening the library file "BitMan Lib.lvlib". However, it is most convenient to copy entire BitMan directory to the directory \user.lib. After the restart of LabVIEW on a pallet, in the User Libraries, sub-palette "BitMan" will appear. Documentation A description of all VIs from palette is available in the file "docs\BitMan docs.html". Descriptions are also included (for all functions) in the Documentation section of the VI Properties dialog, as well as for more important front panel controls and, as such, are available through the LabVIEW context help. Examples Examples of applications can be found in the directory "examples" (examples of the use of the library itself) and the directory "examples\Dynamic Filters" (examples of the creation of filters). Examples along with descriptions in the diagrams are an integral part of the documentation. Functionality The most important class it the Bitmap class. It contains structure for storing an image (the description of the structure may be found in documentation under Bitmap type.ctl) and the basic access methods. The main assumption of this structure is to store the image in three-dimensional U8 array, where subsequent dimensions mean respectively height (y coordinate), width (x) and subsequent color channel. Number of channels in the image depends on the bit depth, additionally you can define any number of user channels. It is possible to store pictures 1 -, 4 -, 8 -, 24 - and 32-bit, while the 32-bit means here CMYK color model, rather than - as is sometimes used - RGB images with transparency . Transparency (the so-called alpha channel) is stored in a separate field of the structure. Support for CMYK images is not fully implemented yet. The processing of images is done by the use of system of filters implemented in General Filter class. This class stores a reference to strictly typed VI processing an image and its runtime parameters. The filter is launched with Filter Run method, which uses the dynamic call mechanism. Filter runtime parameters are stored in the object as a variant variable for unified method for passing them. Users can create their own filters in two ways: by using methods of Dynamic Filter class and filter template or by creating a new class inheriting from General Filter class. It is also possible to create a function-specific interfaces for the use of filters as the normal LV function. Inheriting and transparent interface is the way buit-in filters work, so they are also a specific example of use of the library. Template to create your own filters may be found in "typedefs". Using of dynamic filters is supported Library Filter class designed for managing filters. It makes use of the functional global mechanism for storing and providing access to pre-loaded filters with assigned names. It can call the filters by using short names anywhere in the code, without a burdensome wiring of filter objects. Another supporting class is Bitmap With Filters class, inheriting from the Bitmap class and extending its functionality with a possibility of using a sequence of filters. More detailed descriptions of individual functions and applications can be found in the above mentioned documentation and examples. Version History: 1.0.0: Initial release of the code. 1.0.1: Packaged version with small bugfix Click here to download this file
-
Could you sketch an example? I'm not sure I understand it well...
-
QUOTE (Aristos Queue @ Jun 2 2009, 07:07 AM) That's very interesting problem I'm thinking about from time to time. Metric used here is byte size of gzipped code with removed comments and reduced whitespaces. I guess that it's somehow proportional to time spent writing the code, but not taking into account time spent on searching in documentation, debugging, etc. For LV it should be similar. For each node and terminal in LV code we may assign the word which lenght should be proportional to its depth within palette tree. Plus one or two characters for each wire, maybe more for longest wires (scrolling is so slooow when wiring), plus some overhead for each subvi, plus 500 characters per each openning of control properties dialog (grrr),plus whitespace between above and that's it. But such a comparison wouldn't show few of many LV strenghts such as time spent on debuging or on creating GUI.
-
Something has irrevocably ended... I don't have 8.6 so I cannot check it directly, but I read help file and realized that not so many properties were released, not so many... So my T-shirt design is still actual. Maybe I have to change property. Any candidates?
-
There are generally two ways to achieve color map with 3D Picture control: "per vertex" coloring scheme or texture. First one is probably simpler and provides potentially nicer, scale independent result. With second one you may get more sophisticated result (i.e. cobining map with an image), but you have to earlier map 3D surface to 2D image and provide texture coordinates for each vertex. What concerns displaying grid I did't find efficient way to do this. You can set either polygon or wireframe draw style and I found no way to get shaded object with wireframe. I tried two create two identical objects - one shaded and second "wireframed" but effect was little bit strange - kind of blinking during rotation. Maybe the method would be to move wireframe vertices a little in normal direction, but still it is not a way how it should be done. Another problem with 3D control is speed (at least when you don't use a separate window). Although 3D Picture Control is very simple to use, for a longer term I find it not flexible enough, and therefore already for a long time I experiment with various external 3D engines. Recently I found .NET bindings for VTK (which is widely known scientific visualisation engine) and first results are very promising.
-
QUOTE (MikaelH @ May 26 2009, 11:28 PM) In my http://forums.lavag.org/BitMan-Bitmap-Manipulation-Library-file177.html' target="_blank">image manipulation library there is an example "clock.vi" where I created fancy gauge using picture control. It looks lie this: http://forums.lavag.org/post-a12105-clock.swf
-
True/False constants and other philosophical questions...
vugie replied to Gary Rubin's topic in LabVIEW Feature Suggestions
QUOTE (jdunham @ May 7 2009, 08:04 PM) It reminded me old russian joke: The beginning of the russian Bible edition: At the beginning there was nothing. Only Comrade God was walking around the streets of Moscow. However it sounds best in russian... QUOTE But it is really nice on the BD constant to drop it and then, if you need floating point, to type in a value using a decimal point and the constant will automatically change to double type. I don't belive! It's the first thing I'll check tomorrow! -
QUOTE (Antoine Châlons @ May 6 2009, 11:08 AM) QUOTE (crelf @ Apr 25 2009, 07:11 PM) ... You can make it themed so that it ties into NIWeek 2009 if you want, but this is not a requirement. And besides this, it is hard to design graphics for event I have no idea about. Also I won't have a chance to take part in NIWeek, so I decided to design something more general. I used Inkscape - the great open source vector graphics application. Maybe it is little bit slow, but at current stage it is even comparable to Adobe Illustrator which is top of the topest.
-
So here are my propositions for t-shirts. This is for the front side: As you can see I played a little bit with LabVIEW logo and turned it to something with "lavability". In case when word "LAVA" made of wires is not too readable, I prepared alternate version: And this is for the back side (as suggested in this thread): This is loose variation around Amnesty International logo. As I am not a native English speaker, I'm not so sure what is an exact impression of this slogan. Please feel free to suggest something that sounds better. SVG sources avaiable for request. No bitmaps are used, everything is nicely scalable.
-
QUOTE (Jarimatti Valkonen @ May 5 2009, 09:47 AM) So for sure you'll like http://www.phunland.com' rel='nofollow' target="_blank">Phun
-
Guys, you almost forced me to ask the question on the dark side... [EDIT]didn't see your answer when writing this, Ton [/EDIT] But fortunately I found the solution: AO.UseOnlyOnBrdMem property has to be set to True. [EDIT2] QUOTE It does not change the behaviour. QUOTE 2. Let the analog output task generate the clock, and let the analog clock be used for the the digital output. Set the start trigger of the digital task to be the analog start. Then first start the digital task and then start the analog task. I started with this approach and results were similar. I think that there is to less samples to be tranfered effectively, but I don't understand why DAQmx wants to do it each cycle. [/EDIT2]
-
QUOTE (crelf @ Apr 26 2009, 11:34 PM) they are called "frames".
-
Dear LAVAs, I'm stucked. I have M series device (USB 6251) and want to use it to control device "E". E needs to provide analog trapezoidal waveform, clock and number of digital signals. Just like on a chart on front panel below. At this point it is ok to generate same data continuously. I generate a clock with onboard frequency generator and use is as an external clock source for output tasks. Number of samples to be generated is 150 for each line, rate is 1 MHz. I am able to generate analog and digital signals separately, but when I try to join it analog task generate such an error: QUOTE or: QUOTE Onboard device memory underflow. Because of system and/or bus-bandwidth limitations, the driver could not write data to the device fast enough to keep up with the device output rate. Reduce your sample rate, alter the data transfer method (from interrupts to DMA), use a product with more onboard memory, or reduce the number of programs your computer is executing concurrently. So, what I am doing wrong? Already tried to reduce a rate (but is this huge set of samples?). Help please and then I'll have more time for VIpreVIEW polishing http://forums.lavag.org/post-a11780-test.swf
-
Suggesting this as a CLD question regarding Refnums
vugie replied to Aristos Queue's topic in Certification and Training
QUOTE (Yair @ Apr 24 2009, 11:20 AM) Ha! You created a constant from a valid indicator! :ninja: -
I already wrote almost exactly what you are talking about. LINK From that time I don't develop it further because.... I don't use it. Maybe it is a question of inertia. Maybe I just don't remember to turn it on or do not have time to define macros. I use 8.2 so I haven't Quick Drop. But I just noticed that there is 300+ downloads. People, do you use it?
-
QUOTE (RalcoBe @ Mar 30 2009, 10:31 AM) Confirm. Some time ago I made simple metal detector and distance sensor using piece of copper wire and two jack plugs. I winded wire around a pencil making a coil and was generating sinusoindal signal through headphones output and measuring responce with microphone input. There is also a number of cheap "osciloscope cards" working with sound card (around few $) - making such a play safer for sound card
-
QUOTE (Michael Aivaliotis @ Mar 20 2009, 07:04 PM) So use windows or linux virtual machine. The communication with LV would be sligthly more complicated but still achievable with virtual network. It would also consume more memory. Another solution, maybe better for experiments, would be separate windows machine (anywhere but with public IP) for only providing VI code capturing service.
-
QUOTE (Michael Aivaliotis @ Mar 19 2009, 06:01 PM) Do you mean it IS possible (and realistic) to have LV development environment on this server?
-
QUOTE (mesmith @ Mar 19 2009, 02:53 PM) [OT] Note that these tests were performed with relatively small files (13 MB in total). In this case 300% means 40 s These results does not scale linearly with size. I use 7-zip everyday compressing files from 20 MB to over 200 MB and I don't feel this penalty. And sending 30% smaller files over internet is 30% faster.... [/OT]
-
QUOTE (PaulG. @ Mar 19 2009, 02:32 PM) Not just zip. http://en.wikipedia.org/wiki/Comparison_of_file_archivers#Comparison_of_efficiency' rel='nofollow' target="_blank">7-zip.
-
QUOTE (rie88 @ Mar 19 2009, 07:03 AM) For such a general question I would answer: 7-zip. Store your measurements in any way you like and automaticaly once a day or a week pack them to 7z by calling 7-zip command line executable.