LAVA Forums Buy cool LAVA gear Forums RSS Feed

Welcome Guest ( Log In | Register )

> Related links

Visit our LabVIEW Wiki Machine Vision and Imaging Portal


Tags
(This content has not been tagged yet)
3 Pages V   1 2 3 >  
Reply to this topic Start new topic
> [CR] LVOOP ImageMagick Interface, File Updated: 18 Jun 2007
Rating 5 V
Justin Goeres
post Jun 17 2007, 02:25 PM
Post #1


Extremely Active
****

JKI
Posts: 559
Joined: 13-September 05
From: Cary, NC USA
Member No.: 2992
Using LabVIEW Since:1997
LV:8.5 ,8.2.1 ,7.1.1
United States us_north_carolina us_iowa


File Name: LVOOP ImageMagick Interface File Submitter: Justin Goeres File Submitted: 16 Jun 2007 File Updated: 12 Mar 2008 File Category: Machine Vision and Imaging File Version: 1.0.2 LabVIEW Version: 8.2.x License: GNU Public License LVOOP ImageMagick Interface V1.0.2 Copyright © 2007, Justin Goeres Engineering All rights reserved. AUTHOR: Justin J. Goeres (see enclosed README.txt for email address) DESCRIPTION: This library provides an LVOOP-based interface to the powerful cross-platform ImageMagick image handling utility suite. It supports all of the ImageMagick utilities and almost every command-line operator (over 200 of them) with support for custom user-specfied operators for the edge cases. Several examples are included that demonstrate basic text & image creation, composition, and conversion in and out of LabVIEW (including VI icon creation). GETTING STARTED: The first thing you need to know about ImageMagick is that it has a pretty steep learning curve. Complicated things are complicated, and easy things are sometimes complicated, too. The Example VIs provided with the project are intended to give you a basic start on how to use the library, but you should expect to consult an ImageMagick Examples Page frequently. COMPATIBILITY: The library is written for cross-platform usage, but is currently limited to compatibility with Windows because I don't have any non-Windows LabVIEW machines to write the platform-specific code on. If you can help out with compatibility for other platforms, please contact me. I would LOVE wub.gif to hear from you. REQUIREMENTS: A working Windows ImageMagick installation. Tested with ImageMagick v6.3.4-Q16. Almost certainly works with later versions, and probably with earlier versions back to at least v5.4.8. (Personal testimonials on this are welcome.) REQUIRED minimum OpenG Packages: oglib-error-2.3.2 oglib-lvdata-2.7.2 RECOMMENDED OpenG Packages: (used in examples, but not in the core functions) oglib-file-2.8.1 oglib-array-2.5.1 KNOWN ISSUES: Currently applications built against this library throw a litany of execution errors when run in the RTE. If you need to build these libraries into an application, please contact me and I will try to help you. Functions for a few of the built-in pattern generators are not completely implemented. You can access them using a custom raw operator argument. SUPPORT: Comments, bug reports, and feature suggestions are always welcome! http://forums.lavag.org/CR-LVOOP-ImageMagi...face-t8461.html CHANGE LOG: 1.0.2: Fixed a localization bug in the generation of floating-point command-line arguments. Added a check for oversize command line length (System Exec.vi max is 32766 bytes). (11/26/2007) 1.0.1: Fixed an incompatibility with ImageMagick 6.3.4 when using certain operators. Added a better error message when ImageMagick can't be located under Windows. (6/19/2007) 1.0.0: Initial release (06/18/2007) LICENSE: GNU General Public License, Version 2. (Other licensing terms may be available. Contact the author for details.) Click here to download this file

--------------------
If you don't like this post, you might also not like my widgets!


Tags
(This content has not been tagged yet)
Go to the top of the page
+Quote Post
Ad
post Jun 17 2007, 02:25 PM
Post #















Tags
(This content has not been tagged yet)
Go to the top of the page
Quote Post
Tomi Maila
post Jun 17 2007, 06:57 PM
Post #2


Drawing Tool - LVOOP example application
*****

Premium Member
Posts: 1169
Joined: 29-January 06
From: Helsinki
Member No.: 4014
Using LabVIEW Since:2004
LV:8.5.1 ,8.2.1 ,7.1.1
Finland Nothing Selected Nothing Selected My Blog


Seems like an interesting project. Unluckily I cannot use this library in any work related project because of the virality of the GPL license you have used sad.gif

--------------------
Tomi Maila



Tags
(This content has not been tagged yet)
Go to the top of the page
+Quote Post
Justin Goeres
post Jun 17 2007, 07:56 PM
Post #3


Extremely Active
****

JKI
Posts: 559
Joined: 13-September 05
From: Cary, NC USA
Member No.: 2992
Using LabVIEW Since:1997
LV:8.5 ,8.2.1 ,7.1.1
United States us_north_carolina us_iowa


QUOTE (Tomi Maila @ Jun 17 2007, 10:57 AM) *
Seems like an interesting project. Unluckily I cannot use this library in any work related project because of the virality of the GPL license you have used sad.gif

Tomi,

Without getting into a religious war about licensing wacko.gif , I'd like to state that I've given a lot of thought to what license to release the library under, and I chose the GPL very carefully. My understanding of the GPL is that you may be absolutely free to use GPL-licensed code in work-related projects, but it depends on your specific situation and what you want to accomplish.

If you, for instance, are working inside a corporation as an agent of that corporation, then distributing your software within that corporate entity does not fall under "distribution" as the GPL defines it. I want to heartily encourage people to use my library in situations like this.

If, however, you are distributing those work products to others commerically or outside the corporation you create them in, then I specifically want the code to remain free. The correct license for a situation like that is the GPL.

If you have a suggestion of a better license to use that meets the above criteria, I'd be interested to discuss it. Also, if you have a specific situation you would like to use the library in that the GPL prohibits, please contact me -- I may be willing to license it under different terms on a case-by-case basis.

Thanks!

--------------------
If you don't like this post, you might also not like my widgets!


Tags
(This content has not been tagged yet)
Go to the top of the page
+Quote Post
Yair
post Jun 17 2007, 08:41 PM
Post #4


Extwemely Active
*****

Premium Member
Posts: 1632
Joined: 23-January 05
From: Here
Member No.: 1431
Using LabVIEW Since:2003
LV:8.6 ,7.0 ,.
Israel Nothing Selected Nothing Selected


I don't think I will use this (for one thing I don't have 8.x and for another I don't really need image manipulation), but I do hope to take this as an opportunity of learning from an actual LVOOP example. thumbup1.gif

--------------------
More than meets the eye...


Tags
(This content has not been tagged yet)
Go to the top of the page
+Quote Post
crelf
post Jun 17 2007, 08:46 PM
Post #5


I'm a LAVA, not a fighter.
******

V I Engineering, Inc.
Posts: 3751
Joined: 13-October 03
From: Michigan, USA
Member No.: 181
Using LabVIEW Since:1993
LV:8.5 ,. ,.
Australia United States Nothing Selected My Blog


QUOTE (Justin Goeres @ Jun 18 2007, 05:56 AM) *
Without getting into a religious war about licensing

Is there any other kind? biggrin.gif

My company prefers to use BSD components, as they're easier for us to include in commercially release software (everything we write). GPL and LGPL are a little more restrictive, and I think (I don't want to put any words in Jim's mouth) this is why OpenG dumped LGPL in favour of BSD.

--------------------


Tags
(This content has not been tagged yet)
Go to the top of the page
+Quote Post
Justin Goeres
post Jun 17 2007, 10:58 PM
Post #6


Extremely Active
****

JKI
Posts: 559
Joined: 13-September 05
From: Cary, NC USA
Member No.: 2992
Using LabVIEW Since:1997
LV:8.5 ,8.2.1 ,7.1.1
United States us_north_carolina us_iowa


QUOTE (yen @ Jun 17 2007, 12:41 PM) *
I don't think I will use this (for one thing I don't have 8.x and for another I don't really need image manipulation), but I do hope to take this as an opportunity of learning from an actual LVOOP example. thumbup1.gif

yen,

I think that's a great idea. Honestly, I don't use ImageMagick very much (mostly scaling/rotating/format conversion) but it struck me as a great project to force myself to do a larger-scale LVOOP design (there are about 26 classes in all, and most of them inherit from a single base class):
Attached Image

There's a method in Command Line Operator.lvclass and its descendents called Translate to Command Line Operator.vi that is overridden in probably 20 different child classes. It's responsible for all the magic of building the cryptic ImageMagick incantations. LVOOP makes that single method beautiful to implement.

--------------------
If you don't like this post, you might also not like my widgets!


Tags
(This content has not been tagged yet)
Go to the top of the page
+Quote Post
Michael_Aivaliot...
post Jun 18 2007, 07:35 AM
Post #7


Confucius say: Crowded elevator always smell different to midget
Group Icon
*****

Admin
Posts: 2367
Joined: 13-October 02
From: Planet Earth
Member No.: 2
Using LabVIEW Since:1994
LV:8.5 ,8.2.1 ,7.1.1
Greece Canada United States My Blog My Gallery


Moderator Note: The Code repository has a bug which caused this file to be currently unavailable. This will be fixed ASAP and the download will soon be available.

--------------------


Tags
(This content has not been tagged yet)
Go to the top of the page
+Quote Post
Tomi Maila
post Jun 18 2007, 08:13 AM
Post #8


Drawing Tool - LVOOP example application
*****

Premium Member
Posts: 1169
Joined: 29-January 06
From: Helsinki
Member No.: 4014
Using LabVIEW Since:2004
LV:8.5.1 ,8.2.1 ,7.1.1
Finland Nothing Selected Nothing Selected My Blog


QUOTE (Justin Goeres @ Jun 17 2007, 10:56 PM) *
If you have a suggestion of a better license to use that meets the above criteria, I'd be interested to discuss it. Also, if you have a specific situation you would like to use the library in that the GPL prohibits, please contact me -- I may be willing to license it under different terms on a case-by-case basis.

Actually GPL license is almost never used in a library. GPL licesne forces any project that uses such library to be of GPL license as well. So it's not only about keeping your library modifications open source and freely available but also about forcing all the work that uses that library to become open source and freely available as well. You surely understand that this is a very restrictive license term for a library.

I prefer BSD licensing as well. However if you are not comfortable with BSD licensing, please take a look at my post about LabVIEW library licensing below.

Open Source Licensing of LabVIEW packages, How to license LabVIEW Open Source Packages

Tomi

--------------------
Tomi Maila



Tags
(This content has not been tagged yet)
Go to the top of the page
+Quote Post
Justin Goeres
post Jun 18 2007, 02:03 PM
Post #9


Extremely Active
****

JKI
Posts: 559
Joined: 13-September 05
From: Cary, NC USA
Member No.: 2992
Using LabVIEW Since:1997
LV:8.5 ,8.2.1 ,7.1.1
United States us_north_carolina us_iowa


QUOTE (Tomi Maila @ Jun 18 2007, 12:13 AM) *
Actually GPL license is almost never used in a library.

I'm not sure that's true. On the contrary, I think it's used in thousands of libraries, is it not?

QUOTE (Tomi Maila @ Jun 18 2007, 12:13 AM) *
GPL licesne forces any project that uses such library to be of GPL license as well. So it's not only about keeping your library modifications open source and freely available but also about forcing all the work that uses that library to become open source and freely available as well. You surely understand that this is a very restrictive license term for a library.

As I said above, I do understand that.
(dons religious armor)
Part of this matter is a difference in perspective. What you see as a "very restrictive license" I see as a very permissive license. You can do anything you want with the GPL code, with the single caveat that you must do so under the banner of creating Free Software. I don't find that restrictive at all -- what it restricts is only your ability to impose restrictions on others.
(removes religious armor)

Let me be clear that I understand the need/purpose for different licensing schemes. I understand why OpenG moved to BSD, and I fully (tacitly) supported that move. I have released other code (in other languages) under other licenses, and I've chosen to release this specific library under the GPL for the reasons above. I know what that means to people who want to use it, and I also know that there's a great deal of both dislike and misunderstanding about the GPL (for the record, I don't include you in that -- I'm speaking more generally).

QUOTE (Tomi Maila @ Jun 18 2007, 12:13 AM) *
I prefer BSD licensing as well. However if you are not comfortable with BSD licensing, please take a look at my post about LabVIEW library licensing below.

I appreciate that you've clarified the different types of open source licenses and the (OSI certification is important to some extent), but I don't see that the linked post adds much new information for me.

My position is still the same as what I stated before (emphasis added):
QUOTE (Justin Goeres @ Jun 17 2007, 11:56 AM) *
If you have a suggestion of a better license to use that meets the above criteria, I'd be interested to discuss it. Also, if you have a specific situation you would like to use the library in that the GPL prohibits, please contact me -- I may be willing to license it under different terms on a case-by-case basis.

--------------------
If you don't like this post, you might also not like my widgets!


Tags
(This content has not been tagged yet)
Go to the top of the page
+Quote Post
crelf
post Jun 18 2007, 04:10 PM
Post #10


I'm a LAVA, not a fighter.
******

V I Engineering, Inc.
Posts: 3751
Joined: 13-October 03
From: Michigan, USA
Member No.: 181
Using LabVIEW Since:1993
LV:8.5 ,. ,.
Australia United States Nothing Selected My Blog


QUOTE (Justin Goeres @ Jun 19 2007, 12:03 AM) *
...it restricts... your ability to impose restrictions on others.

Right - and I'm in the game of system integration where a lot of what I release is proprietary to both my company and my client - we're not going to be releasing that code as open source anytime soon, so the GPL license that you've imposed therefore restricts me from using your library in my projects.

--------------------


Tags
(This content has not been tagged yet)
Go to the top of the page
+Quote Post
Justin Goeres
post Jun 18 2007, 04:39 PM
Post #11


Extremely Active
****

JKI
Posts: 559
Joined: 13-September 05
From: Cary, NC USA
Member No.: 2992
Using LabVIEW Since:1997
LV:8.5 ,8.2.1 ,7.1.1
United States us_north_carolina us_iowa


QUOTE (crelf @ Jun 18 2007, 08:10 AM) *
Right - and I'm in the game of system integration where a lot of what I release is proprietary to both my company and my client - we're not going to be releasing that code as open source anytime soon, so the GPL license that you've imposed therefore restricts me from using your library in my projects.

Understood. That was the balance that was kicking around in my head when I was deciding the licensing. In this case, I fell on the side of software freedom rather than size of potential audience. The ensuing discussion is by no means unexpected wink.gif .

For someone in your situation, I would suggest that you might still be able to find use for my library. One of the hardest parts of using ImageMagick is working out what in blazes your command line should look like. The Execute ImageMagick Process.vi routine in the library (which is what actually makes the magic(k) happen) outputs the command line string that's executed:
Attached Image
Anyone can, for instance, use my code as a development aid to work out what their ImageMagick operations need to be, and then mangle the resulting command line into a Format Into String (or any number of other things) for their situation under almost any license they want (subject to the ImageMagick license, which is very permissive). I find that working out ImageMagick incantations by pushing VIs around beats command-line gymnastics by a wide margin.

--------------------
If you don't like this post, you might also not like my widgets!


Tags
(This content has not been tagged yet)
Go to the top of the page
+Quote Post
Jim Kring
post Jun 18 2007, 04:51 PM
Post #12


Changing the world, one VI at a time.
*****