04-25-2018 04:15 PM
I'm working with a gross pathology lab, where they produce anatomic images before slide prep using Canon Rebel series cameras. If the images are uniformly named with defined attributes - patient ID, order number, body part - we can develop an automated process for picking them up and placing them in patient folders with pointers that will launch an image viewer in our electronic medical record system.
I was thinking perhaps this could be done with a linked application - the app would be launched on image capture, the tech would barcode attributes from order sheets into the GUI of the app, and save to a fixed directory.
Can this be done with a .Net app? Does a pointer reference get passed in the integration with a linked app, or the actual image object itself? Might anyone have developed an app that does something remotely like this, or can point me to sample code?
Thanks in advance...
04-25-2018 04:30 PM
There are probably a few ways to solve this depending on how ambitious you want to be.
Canon has a developer program (free) which gets your developers access to the EOS SDK ... this allows you to develop your own software to control the camera. For example, in astronomy, there are many applications that automate image acquisition with the camera connected to a telescope and they use the SDK (SDK = Software Development Kit) to do this.
There are also apps do tethered shooting and will just drop the files into a folder on your computer using some naming convention that you invent (but it is meant to be sequential). But all these do is leave the programs on the hard drive -- they wont do anything with them. But you can get programs that do "something" when they find a file showing up in a folder (kick off some automated process).
Canon EOS Utility (comes with camera and also downloadable) can do remote shooting (aka "tethered" shooting with camera connected to computer via USB cable... some cameras support WiFi connection) and drop the images in a folder as they are captured.
But I made the comment about the naming convention intended to somehow be sequential. It sounds like your names wont necessarily be sequential which means each file would probably have to be renamed one-by-one as they are captured unless you wrote your own integrated capture application.
04-25-2018 04:35 PM
04-26-2018 11:38 AM
You may want to apply for access to the EOS SDK. You can do that by visiting this website:
The SDK documentation does come with a sample app and some sample code ... there is, for example, a sample that describes how to remotely take a picture (tethered shooting) ... but that doesn't download the image. There's another sample code that shows how to download an image from the camera.
Basically if you or someone you know has coding skills, you'd be able to put together your own application that takes the picture, downloads it, and names it whatever you want.
You might *also* be able to script something. Once upon a time I used Apple Aperture... and tethered shooting wasn't supported for my new camera model. Apple has the ability to create automated scripts that do things when certain events happen. One such example is to watch a folder and whenever a new file is dropped into that folder, automatically do something with it. So this app used an automator script to create tethered shooting for my camera from a piece of software that didn't actually support tethered shooting directly (at least not with that new camera model). I used the EOS Utility to perform the tethered shot... and it dropped the files into a specific folder. But an automator action would trigger as soon as the file appeared in that folder... which imported it into another application (in this case it was a photo application). Some months later, the application added direct support for tethered shooting with that camera model and I no longer needed that scripted process.
I was on a Mac ... but it may be possible to do something similar with Windows.
04-26-2018 11:46 AM
I missed that you already signed up... in my docs (I still have EOS SDK v3.4 ... but the least is 3.5 -- I've not yet downloaded it) but it does include sample code.