Newbie question [message #5968] |
Thu, 21 March 1996 00:00  |
J. Allen Brandt
Messages: 1 Registered: March 1996
|
Junior Member |
|
|
As a potential buyer of IDL/PV-Wave, I am new to this newsgroup and had
hoped to use it to help me make a purchasing decision. Without starting
a flame war, let me ask, "Is there a FAQ available that shows the
similarities and differences between the two products?" I have been
considering the following Windows packages: Matlab, Hi-Q, IDL, and
PV-Wave. There is a considerable price span for these products.
I am a researcher who needs a tool to help me develop mathematical
convolutions and statistical analyses for image processing. I work with
2-D and 3-D image data and I need to perform things like texture
analysis, color segmentation, object counting, morphology, etc. I would
ideally like a package that would allow me to output "C" code. I could
then build a Visual C++ GUI front-end for it and distribute it for use
within my organization. Alternatively, I could simply use the native
interpreted code to prototype my techniques and once proven, re-write
them in C.
Can anyone offer any guidance as to the appropriate package for my stated
needs?
JB
|
|
|
Re: Newbie Question [message #16836 is a reply to message #5968] |
Tue, 24 August 1999 00:00  |
Nando Iavarone
Messages: 48 Registered: December 1998
|
Member |
|
|
<HTML>
Dan Fletcher wrote:
<BLOCKQUOTE TYPE=CITE>Coeff=DIGITAL_FILTER(Flow,Fhigh,50,40)
<BR>FilteredTestDataSub=CONVOL(Data[0,*],Coeff)
<P>When I do this, I get an error that says
<P>CONVOL: Kernel's dimensions are incompatible with operand's.
<P>I think this is because the Data[0,*] gives a 1xm array rather than
a</BLOCKQUOTE>
ok.see the reform function.
<BR>try:
<BR>FilteredTestDataSub=CONVOL(reform(Data[0,*], $
<BR>
n_elements(Data[0,*])), $
<BR>
Coeff)
<BR>
<PRE>--
Nando Iavarone
Advanced Computer System - SPACE DIVISION
via Lazzaro Belli, 23
00040 Frascati - RM
Tel: +39-6-944091 (switchboard)
9440968 (direct)
E-mail:
f.iavarone@acsys.it
FrdndVrn@altavista.net</PRE>
</HTML>
|
|
|
Re: Newbie Question [message #16844 is a reply to message #5968] |
Mon, 23 August 1999 00:00  |
Craig Markwardt
Messages: 1869 Registered: November 1996
|
Senior Member |
|
|
Dan Fletcher <djfletcher@ucdavis.edu> writes:
>
> Coeff=DIGITAL_FILTER(Flow,Fhigh,50,40)
> FilteredTestDataSub=CONVOL(Data[0,*],Coeff)
>
> When I do this, I get an error that says
>
> CONVOL: Kernel's dimensions are incompatible with operand's.
>
> I think this is because the Data[0,*] gives a 1xm array rather than a
> vector of length m. I can't figure out any way to change that 1xm array
> into a vector without a FOR DO loop. Is there some simple way to solve
> this problem?
>
I don't know much about the digital filtering, but if you want to
convert a matrix to a vector, it's pretty simple. Like this:
FilteredTestDataSub=CONVOL( (Data[0,*])[*] ,Coeff)
Any vector or matrix with a [*] after it will be converted to a
one-dimensional vector. The parentheses are needed because Data[0,*]
is an expression.
Craig
--
------------------------------------------------------------ --------------
Craig B. Markwardt, Ph.D. EMAIL: craigmnet@cow.physics.wisc.edu
Astrophysics, IDL, Finance, Derivatives | Remove "net" for better response
------------------------------------------------------------ --------------
|
|
|
Re: Newbie Question [message #16846 is a reply to message #5968] |
Mon, 23 August 1999 00:00  |
davidf
Messages: 2866 Registered: September 1996
|
Senior Member |
|
|
Dan Fletcher (djfletcher@ucdavis.edu) writes:
> I'm new to IDL and am implementing some signal processing code. I have
> an array corresponding to a set of n time series, each with m points. I
> want to filter each time series so I'm using the following code to
> filter the first time series
>
> Coeff=DIGITAL_FILTER(Flow,Fhigh,50,40)
> FilteredTestDataSub=CONVOL(Data[0,*],Coeff)
>
> When I do this, I get an error that says
>
> CONVOL: Kernel's dimensions are incompatible with operand's.
>
> I think this is because the Data[0,*] gives a 1xm array rather than a
> vector of length m. I can't figure out any way to change that 1xm array
> into a vector without a FOR DO loop. Is there some simple way to solve
> this problem?
data = Reform(data[0,*])
The trailing dimension of 1 will be dropped by IDL and you
will end up with the row vector you are looking for.
Cheers,
David
--
David Fanning, Ph.D.
Fanning Software Consulting
Phone: 970-221-0438 E-Mail: davidf@dfanning.com
Coyote's Guide to IDL Programming: http://www.dfanning.com/
Toll-Free IDL Book Orders: 1-888-461-0155
|
|
|
Re: Newbie Question [message #16847 is a reply to message #5968] |
Mon, 23 August 1999 00:00  |
Matthew J. Sheats
Messages: 19 Registered: September 1997
|
Junior Member |
|
|
Dan Fletcher wrote:
> I think this is because the Data[0,*] gives a 1xm array rather than a
> vector of length m. I can't figure out any way to change that 1xm array
> into a vector without a FOR DO loop. Is there some simple way to solve
> this problem?
Ooh. One I can answer. Heh.
Use REFORM(...) to trim off extra dimensions. For Ex:
Coeff=DIGITAL_FILTER(Flow,Fhigh,50,40)
FilteredTestDataSub=CONVOL(REFORM(Data[0,*]),Coeff)
It will strip off that extra 1 dimension. Check out the help for more
info.
> Thanks for any help,
> Dan Fletcher
> UCD Vet Med Class of 2002
Matthew Sheats
Los Alamos National Laboratory and
UCD Computer Science Grad Student, Class of God Only Knows....
|
|
|