OpenCV es una biblioteca de programación multiplataforma de uso gratuito que se utiliza principalmente para la visión por computadora . Está escrito en C/C++. La visión por computadora se usa ampliamente en aplicaciones como detección de rostros, vehículos autónomos, etc. Para usar esto con Node.js, usaremos la biblioteca opencv4nodejs . Opencv4nodejs nos permite usar la biblioteca OpenCV nativa con nuestra aplicación Node.js. Esta es una excelente manera de implementar la visión por computadora en su sitio web existente y una excelente manera de hacer proyectos.
Ventajas de usar OpenCV con Node.js
- Como OpenCV está escrito en C/C++, es muy eficiente y, por lo tanto, no ralentiza el sitio.
- La implementación en aplicaciones web que ya tienen un backend de Node.js es muy fácil, por lo que cualquier proyecto puede tener características como reconocimiento facial y visión por computadora.
- Use fácilmente clasificadores prediseñados que facilitan la implementación
- Es una biblioteca de código abierto, lo que significa que se trabaja y actualiza continuamente para mejorar el rendimiento.
Instalación de los módulos necesarios :
- Instalación del Módulo Express.
npm install express
- Instalación de herramientas de compilación de Windows La instalación de VS Code requiere herramientas compiladas.
npm install --global windows-build-tools
- Instalación del módulo socket.io.
npm install socket.io
- Instalación del módulo opencv4nodejs.
npm install --save opencv4nodejs
Primero, crearemos un servidor web express que aloje toda la aplicación, luego usaremos socket.io para actualizar la imagen y luego usaremos OpenCV para leer la imagen.
Ejemplo Este archivo HTML se utilizará para mostrar la imagen.
index.html
<!DOCTYPE html> <html> <body> <img id="image"> <! --Connecting html page to socket.io --> <script src= "https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.1.1/socket.io.js"> </script> <script> // Connecting socket.io to localhost const socket = io.connect('http://localhost:3000'); // listening to the image event in index.js socket.on('image', (data)=>{ console.log('data', data); // Now we are getting the image and // displaying it via img tag const imageEle = document.getElementById('image'); // Also we are decoding the base64 encoding // set in javascript file. imageEle.src = data:image/jpeg;base64,${image}; }); </script> </body> </html>
Este es el archivo de punto de entrada de Node.js que usará express, socket.io y OpenCV para mostrar la imagen.
Nombre del archivo:
index.js
// importing OpenCv library const cv = require('opencv4nodejs'); const path = require('path') const express = require('express'); const app = express(); const server = require('http').Server(app); const io = require('socket.io')(server); // We will now create a video capture object. const wCap = new cv.VideoCapture(0); //Setting the height and width of object wCap.set(cv.CAP_PROP_FRAME_WIDTH, 300); wCap.set(cv.CAP_PROP_FRAME_HEIGHT, 300); // Creating get request simple route app.get('/', (req, res)=>{ res.sendFile(path.join(__dirname, 'index.html')); }); // Using setInterval to read the image every one second. setInterval(()=>{ // Reading image from video capture device const frame = wCap.read(); // Encoding the image with base64. const image = cv.imencode('.jpg', frame).toString('base64'); io.emit('image', image); }, 1000) server.listen(3000);
Ejecute el archivo index.js usando el siguiente comando:
node index.js
Salida: Abra cualquier navegador en nuestra máquina y escriba localhost:3000.
Publicación traducida automáticamente
Artículo escrito por digvijaydhanker y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA