I am currently working on an image processing project using Java OpenIMAJ library. I need to grab frames from multiple cameras (using Logitech C270 USB Webcams right now) to perform manipulations on the grabbed frames.
I have hit a snag right now. I am able to add 2 cameras when both are running at 640X480 resolution and 3 cameras when the resolution is reduced to 320X240 for all three.
But I need to read the outputs from at least 5 cameras at reasonably good resolution to correctly perform my operations. Is this a limitation on the part of the hardware I am using or a software limitation?.. I have listed some details that I believe could help. Do let me know if you need any further information.
Windows 7 Professional 64bit
JDK 1.7
OpenIMAJ v1.1
Pentium Dual-Core E5700 # 3.00GHz
4GB RAM
No dedicated Graphics
Webcams are connected to USB 2.0 ports
(Windows Experience Index 4.1)
Exception thrown for 3rd camera at 640x480 resolution is
org.openimaj.video.capture.VideoCaptureException: An error occured opening the capture device
Any comments on why I am getting this limitation would be very helpful.
Thanks in advance
In all likelihood this is down to a hardware limitation; streaming from multiple cameras tends to saturate the USB bus. We managed 6 cameras on two separate busses at 320x240 resolution on a single laptop before: http://blog.soton.ac.uk/multimedia/2011/08/01/goggles/
Related
I'm currently using a Samsung Galaxy A20s with a total of 2790MB ram.
the phone was originally developed for Android 9.0 Pie and it has been getting upgrades and I'm currently on Android 11 Honeycomb which is a good thing but the hardware on the phone can't keep up. my ram is always almost full and according to Droid Info app my Java Heap size is 192MB !!!. that's way too much!!
is there any way to reduce the heap size on my smartphone?
One way is you can root your smartphone and get almost full access for example remove factory installed apps, overclock your CPU, increase RAM etc. But rooting will void the warranty and also if your smartphone is uncommon, do it at your own risk !
Read more about it here
https://www.xda-developers.com/root/
I had implemented these solution for webcam capture in java (Sarxos API, JavaCv, Lti-Civil, OpenIMAJ, JMF) and tested on various processors i3 ( 4 GB RAM), i5 (4 GB RAM) , Core 2 Duo and Atom with different webcams.
I had noticed that in every system FPS as well as Refresh rate gets changed
I had been trying with Logitech C920 webcam as external cam.
I don't get why these changes happens. When I test Webcam with Logitech WebCam software It's performance of webcam preview remains constant in all systems even with high resolutions. On low resolution above mentioned Java API works well but when i try with high resolution such as 1920x1080 or 1600x1200 webcam preview comes with huge amount of lagging in low processors such as core 2 duo and atom processors.
Please provide your suggestion on this issue ?
Thanks
does anyone knows how to simulate low ram on an android device?
I want to test my app with low RAM, but the emulator is too slow and i'd like to be able to test it on my HTC one running it only with 512 MB of ram.
Is it possible?
Thanks in advance
The android emulator can run really smooth if you have an Intel CPU on your machine. In order to use to create a smooth emulator, you'll need the following:
1 Install Intel HAXM on your computer. Available here
http://software.intel.com/en-us/articles/installation-instructions-for-intel-hardware-accelerated-execution-manager-microsoft
2 Create a new AVD in AVD Manager, and for CPU select Intel Atom (x86)
3 Make sure you check Use Host GPU option
4 Start the emulator. If everything is ok, you should see a message like this
One option would be create a non-swappable application that dynamically uses up main memory to maintain average available free memory ~= 512 Mb. By non-swappable I mean that it should not be swapped out of main memory by the kernel memory-manager at any time. In Windows this is done using a VirtualLock (http://msdn.microsoft.com/en-us/library/aa366895%28VS.85%29.aspx) that prevents a memory region from being swapped out. Not sure how this can be done in Android though...
I have a hardware device with following specifications
RAM: ~200-250 MB
Speed: ~800 - 1000 MHz
Processor: cortex arm11
We have a C/C++ based SDK to develop applications for the device. Now we want to put JVM inside the device so that people can do java based development too. (Very similar to DVM inside Android OS)
I am a Java guy, but not proficient in C/C++ and Kernel level details.
Could anyone kindly suggest me how to start the whole process or any link where I can improve my knowledge in this direction.
Thanks in advance.
You can run Java applications on an ARMv6 device but the overall experience (performance and api coverage wise) won't be easily similar to a desktop one.
You can use Java SE Embedded to run headless (non gui) applications assuming your device a VFP unit. (ARMv6/7 Linux - Headless EABI, VFP, SoftFP ABI, Little Endian1)
You can also use a third party Java virtual machine like JamVM.
These are all easy if you already have a working arm device with a Linux kernel. In this case you can also port Android to your device easier and this will make it simpler to introduce your device to external developers, you can just say "it is an android 2.3 device". There are various pages (all somehow half baked) about porting Android and Google is your friend.
I'm encountering a problem while using 2 Matrox Extio F2408 devices.
I run a Centos 5.0 system with 5 monitors, 4 connected to the first Extion device, the fifth to the second.
Xinerama mode is enabled.
All is fine but when we open an application feature using OpenGL (implemented in Java with JOGL) the CPU
jumps in 100% and the memory consumption of our application increases dramatically. The application freezes like this.
I have this problem only when we connect both Extio devices in Xinerama mode. With only one device in Xinerama,
or with both of them but without Xinerama there is no problem.
I have updated to the latest official matrox video card driver but this was not a solution.
Could you point me in the right direction in debugging or solving this problem?