mirror of
				https://github.com/eclipse/upm.git
				synced 2025-11-04 00:54:21 +03:00 
			
		
		
		
	This UPM module captures a still frame from a Linux V4L device, such as a USB webcam, and and then allows you to save it as a JPEG image into a file. The camera and driver in use must support streaming, mmap-able buffers and must provide data in YUYV format. This should encompass most video cameras out there. It has been tested with a few off the shelf USB cameras without any problems. Signed-off-by: Jon Trulson <jtrulson@ics.com> Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
		
			
				
	
	
		
			70 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
/*jslint node:true, vars:true, bitwise:true, unparam:true */
 | 
						|
/*jshint unused:true */
 | 
						|
 | 
						|
/*
 | 
						|
 * Author: Jon Trulson <jtrulson@ics.com>
 | 
						|
 * Copyright (c) 2016 Intel Corporation.
 | 
						|
 *
 | 
						|
 * Permission is hereby granted, free of charge, to any person obtaining
 | 
						|
 * a copy of this software and associated documentation files (the
 | 
						|
 * "Software"), to deal in the Software without restriction, including
 | 
						|
 * without limitation the rights to use, copy, modify, merge, publish,
 | 
						|
 * distribute, sublicense, and/or sell copies of the Software, and to
 | 
						|
 * permit persons to whom the Software is furnished to do so, subject to
 | 
						|
 * the following conditions:
 | 
						|
 *
 | 
						|
 * The above copyright notice and this permission notice shall be
 | 
						|
 * included in all copies or substantial portions of the Software.
 | 
						|
 *
 | 
						|
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 | 
						|
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 | 
						|
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 | 
						|
 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
 | 
						|
 * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
 | 
						|
 * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 | 
						|
 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 | 
						|
 */
 | 
						|
 | 
						|
 | 
						|
var sensorObj = require('jsupm_vcap');
 | 
						|
 | 
						|
 | 
						|
/************** Main code **************/
 | 
						|
 | 
						|
var defaultDev = "/dev/video0";
 | 
						|
 | 
						|
// if an argument was specified, use it as the device instead
 | 
						|
if (process.argv.length > 2)
 | 
						|
{
 | 
						|
    defaultDev = process.argv[2];
 | 
						|
}
 | 
						|
 | 
						|
console.log("Using device " + defaultDev);
 | 
						|
console.log("Initializing...");
 | 
						|
 | 
						|
// Instantiate an VCAP instance, using the specified video device
 | 
						|
var sensor = new sensorObj.VCAP(defaultDev);
 | 
						|
 | 
						|
// enable some debug/verbose output
 | 
						|
sensor.setDebug(true);
 | 
						|
 | 
						|
// This is just a hint.  The kernel can change this to a lower
 | 
						|
// resolution that the hardware supports.  Use getWidth() and
 | 
						|
// getHeight() methods to see what the kernel actually chose if you
 | 
						|
// care.
 | 
						|
sensor.setResolution(1920, 1080);
 | 
						|
 | 
						|
// capture an image
 | 
						|
sensor.captureImage();
 | 
						|
 | 
						|
// convert and save it as a jpeg
 | 
						|
sensor.saveImage("video-img1.jpg");
 | 
						|
 | 
						|
// make sure we clean up
 | 
						|
sensor = null;
 | 
						|
sensorObj.cleanUp();
 | 
						|
sensorObj = null;
 | 
						|
console.log("Exiting...");
 | 
						|
process.exit(0);
 | 
						|
 |