PDA

View Full Version : IC Control Data



Unregistered
September 20, 2002, 22:49:58
I need to integrate a Sony DFW-X700 firewire camera into a machine vision system. I have tried your control in the VB environment and I have got the video into my project successfully.

However, for machine vision I would like to use an off the shelf (tried and true) vision algorithm library such as MIL for example. Is there a way that I can simply take the data acquired from the X700 and copy this data from the buffer into another software's image buffer in order to have the algorithms do thier thing on the acquired image? I am trying to do this with the Matrox MIL 7.1 library if you have any specific information on this.

What this allows me to do is use the power of the MIL library without having to purchase a specific Matrox Meteor/1394 interface board.

Thanks in advance ...

Dean


This message was originally posted by Dean in the old IC Imaging Control Support Forum.

Unregistered
September 24, 2002, 13:52:40
Hello,

There are 3 ways to access image data:
1) You can access all pixels of an image directly => MemoryGetImageData
2) You can get a picture
3) You can get a DIB => MemoryGetDib

One of these methods should be suitable for copying the image data to a MIL buffer.

Best regards
Johannes
IC Support


This message was originally posted by IC Support in the old IC Imaging Control Support Forum.

Unregistered
October 10, 2002, 22:57:00
In response to your suggestions:

There are 3 ways to access image data:
1) You can access all pixels of an image directly => MemoryGetImageData
2) You can get a picture
3) You can get a DIB => MemoryGetDib

Do you have any specific code snippets for performing this operation under Active-MIL 7.1 using Visual Basic? I have tried the code:

Dim ImageData as Variant

ICImagingControl1.MemorySnapImage
ImageData = ICImagingControl1.MemoryGetImageData
ICImagingControl1.MemoryReleaseImageData ImageData
'Put ImageData into MIL Image
Image1.Put ImageData, imFormatDefault, imAllBands, 0, 0

and I receive the error "Invalid UserArray" from ActiveMIL.

Alternatively, ActiveMIL has a function Image.AssignMemory which allocates an actual physical memory address to the image data. Does the Imaging Control support something like this that I can use a common physical address to share the images? Again, I am not a pro VB programmer so any code examples would be extremely appreciated.

This problem is the final link for me to be able to spec your control as part of our vision system package, otherwise I will be at the mercy of the vision software vendors and have to use their hardware 1394 boards.

Thanks in advance!!

Dean


This message was originally posted by Dean in the old IC Imaging Control Support Forum.

Unregistered
October 11, 2002, 04:19:33
Dean,

I have had the same problem, but for a different reason. I worked long and hard with no satisfactory result until I realized that both the ICImageControl and MILImage control have the "Picture" property. I found that the code below is fast and simple. Notice that I have used a Compile flag to allow me to use the same code for computers configured with either a generic 1394 link, or with the Matrox 1394 link. I prefer the Matrox 1394, but am forced to use the generic link when using a notebook computer. I have a large investment in MIL code, but find the ICImagingControl useful for acquisition when the Matrox code is not an option.

In this example the ICImagingControl is named icIEEE1394

Select Case Prefs.ImageSourceType
Case "MatroxGrabber"
digitizer1.Image = Image3
digitizer1.Grab
digitizer1.GrabWait mGrabEnd
Case "IEEE1394"
#If ICCON Then
Set CurrentImageBuffer = icIEEE1394.ImageBuffers.Item(icIEEE1394.ImageBuffe rs.CurrentIndex)
Image3.Picture = CurrentImageBuffer.Picture
#End If

In the case that I don't have a Matrox digitizer, I set the Matrox System.systemtype property to "Host"


This message was originally posted by Brad Boyce in the old IC Imaging Control Support Forum.