Interfacing Mathematica and NI Vision using NETLink
- To: mathgroup at smc.vnet.net
- Subject: [mg121479] Interfacing Mathematica and NI Vision using NETLink
- From: guillaume.lepert07 at imperial.ac.uk
- Date: Fri, 16 Sep 2011 05:49:58 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Reply-to: comp.soft-sys.math.mathematica at googlegroups.com
Hi,
I want to use the National instrument Imaq/Vision .NET assemblies to capture images directly into Mathematica. I can set up the camera and snap an image fine, but I run into trouble when I try to convert the NI Vision image into an array so I can transfer it to Mathematica from the .NET world.
I create an NIVision image like this:
>> image = NETNew["NationalInstruments.Vision.VisionImage"]
and open the camera like this:
>> session = NETNew[ImaqdxSession, "cam0"]
then I can snap a new frame from the camera like this
>> session@Snap[image]
and I know it has worked because I can save the image to the HDD:
>> image@WritePngFile["F:\\test1.png"]
So far so good. Now to export the image into an array, I do:
>> image2 = image@ImageToArray[]
which triggers the exception:
"NET::netexcptn: "A .NET exception occurred: "System.NullReferenceException: Object reference not set to an instance of an object at NationalInstruments.Vision.PixelValue2D.GetHashCode()"
To better understand the problem I tried to create myself a PixelValue2D array (the type returned by the ImageToArray method as
>> aa = NETNew["NationalInstruments.Vision.PixelValue2D", {{1,2},{3,4}}]
which triggers the same error.
I am truly stuck now! Help would be greatly appreciated! Thanks,
Guillaume.