Comments (5)
Hi Severi,
Thank you for providing us your request!
Do you mean you would like to control multiple cameras in a single Harvester GUI?
Would this also mean that you’d like to see images from those cameras in the GUI, too?
Regards,
Kazunari
from harvesters.
I meant multiple camera support in case of Harvester Core, but now I actually noticed that this is a duplicate of issue #11. :) So closing this.
from harvesters.
Hi Severi (@severij ),
Let me hear your opition: Which point do you see an advantage of supporting mulitple cameras within a single Harvester Core object?
Say, the current implementation maps a Harvester Core object to a single camera and it's obvisouly minimalistic and simplest (so I like this way from maintainance point of view).
Technically speaking, this way can support multiple devices just having multiple Harvester Core objects and of course, the interface is the same because you're using the same Harvester Core object.
Actually I was thinking about supporting multiple devices within a single Harvester Core object but I have changed my mind having above perspective.
Anyway, I would highly appreciate if you could tell me your point to consider if we should make it or not. In addition, it should be very helpful if you could show some lines of code that you expect to have.
Regards,
Kazunari
from harvesters.
I would say there is no clear advantage, except maybe being more intuitive to the user (but that might be just me). Having a harvester.device_info_list
with multiple cameras makes you think that you could also connect multiple cameras with that HC object, but of course this is impossible with the current implementation.
An alternative implementation would need a separate class for Device
, which could be used like
camera1 = harvester.get_device(0) # Returns a Device object
camera2 = harvester.get_device(1)
or something like that. So the Device
class would have many of the features that Harvester
class currently has. Then the device objects could be used separately:
camera1.start_image_acquisition()
camera2.start_image_acquisition()
# Acquisition of images with the cameras
...
camera1.stop_image_acquisition()
camera2.stop_image_acquisition()
I think this way the process of connecting and disconnecting of the device could be made automatic, like for example connecting the device in the __init__
of the Device
and disconnecting it in the __del__
. If there is a separate Device
class, then the role of Harvester
object would be handling the cti-files and listing the available cameras.
However, I'm not sure if this is any better or more difficult from the maintenance point of view. I want to add that I'm totally happy with the current implementation of Harvester, since it works just fine. :)
Edit:
Since most of the people probably will be working with just one camera, I'm not sure if any alternative solution would be worth the effort. On the other hand the current implementation is quite simple, having just one object (Harvester
).
from harvesters.
Nice :-) Okay, I've got your point and would like to take a bit more time to concider a way to implement your elegant usage. My mind had been sticking on a way to use devices within a HC object anyway and it had kept preventing to reach your idea. Thank you!
from harvesters.
Related Issues (20)
- HikRobot cti file (MVS) HOT 3
- Exception occur when create camera. GenTL exception: Requested operation is not allowed. (ID: -1005) HOT 1
- Buffer size and data type change during Image Acquisition HOT 3
- Finds device, but throws AccessException (no XML parser error) HOT 1
- Need advice on gigae wireshark
- The target port does not hold any URL. HOT 1
- Can you give me some Pointers based on your experience? HOT 1
- Impossible to get a valid buffer in CRAPPY camera class HOT 3
- MatrixVision is now Balluff and no free GenTL Producer is available anymore HOT 3
- Corrupted buffer when acess to the buffer is not fast enough (related to #450) HOT 2
- Nvr + harvester HOT 1
- Memory Leak in harvesters/core.py HOT 3
- ModuleNotFoundError: how to import Package mvIMPACT in python HOT 1
- _gentl.Buffer.raw_buffer non access
- Buffer__get__buffer truncated 64-bit address information cause _get_raw_buffer Windows fatal exception: access violation HOT 2
- _gentl.IoException: GenTL exception: Communication error when trying to execute SoftwareTrigger HOT 1
- h.create(0) freezes HOT 5
- Following tutorial can't get h.device_info_list to list any devices HOT 2
- Unable to KeyboardInterrupt when ImageAcquirer exists HOT 1
- Supporting 32-bit architecture
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from harvesters.