Archivo

Use OpenCV para separar la imagen RGB en componentes de color verde rojo y azul

Este pequeño programa OpenCV demuestra cómo separar la imagen RGB en los componentes R, G y B. El programa está escrito en programación de bajo nivel, ya que hay una función de construcción en OpenCV, lo que haría que este código sea más eficiente. Sin embargo, este ejemplo profundiza la comprensión de cómo la imagen se divide en matriz de píxeles y cómo se puede manipular cada píxel por separado.

Código de escritura

#Include #Include "CV.H "#include" Highgui.h "Usando el espacio de nombres std; int ], Cv_load_image_color); iPlimage *rojo = cvCreateImage (cvSize (img-> width, img-> altura), img-> profundidad, img-> nchannels); iPlimage *verde = cvcreateImage (cvSize (img-> width, img------------------ > altura), img-> profundidad, img-> nchannels); iPlimage *blue = cvcreateImage (cvSize (img-> ancho, img-> altura), img-> profundidad, img-> nchannels); // Configura el puntero Para acceder a los datos IMG álchar * pimg = (ubar *) img-> iMageData; // Configurar puntero para escribir datos UCHAR * pred = (ubar *) rojo-> iMageData; ubar * pgreen = (ub *) green-> iMageData; UChar * pBlue = (UChar *) Blue-> iMagedata; int i, J, rojo, verde, azul, byte; para (i = 0; i altura; i ++) para (j = 0; j ancho; j ++)  rojo = pimg [i*img-> widthstep + j*img-> nchannels + 2];verde = pimg [i*img-> widthstep + j*img-> nchannels + 1]; Blue = Pimg [i*img-> widthstep + j*img-> nchannels + 0]; // rojo pred [i*img-> widthstep + j*img-> nchannels + 2] = rojo; // Pgreen verde [i*img-> widthstep + j*img-> nchannels + 1] = verde; // azul pblue [i*img-> widthstep + j*img-> nchannels + 0] = azul;  // Guardar imágenes CVSaveImage (argv [2], rojo); cvsaveImage (argv [3], verde); cvsaveImage (argv [4], azul); regresar 0;  

COMPILAR

G ++ 'PKG-Config OpenCV--CFlags-Libs' \ separado-RGB.CPP -O separado -RGB 

USO

./IMG por separado-RGB.png rojo.PNG Green.PNG Azul.png
Desarrollo web con Perl - CGI - Hello World Ejemplo
Las siguientes líneas describen un proceso más simple de comenzar con Perl y CGI en el sistema Linux en particular Debian Linux. Aunque lo siguiente.....
Cómo hacer que wdiddle3 establezca un temporizador iddle para la unidad WD Ears
Aquí hay pasos fáciles de seguir sobre cómo deshabilitar y establecer un temporizador para el estacionamiento para la cabeza con WD Ears Drive. Para h...
Error fatal La partición primaria incorrecta 0 termina en el cilindro parcial final
Error fatal mala partición primaria 0 la partición termina en el cilindro parcial final este error ocurre cuando CFDisk está tratando de leer una part...