Archiv

Verwenden Sie OpenCV, um das RGB -Bild in rotgrüne und blaue Komponenten zu trennen

Verwenden Sie OpenCV, um das RGB -Bild in rotgrüne und blaue Komponenten zu trennen

Dieses kleine OpenCV -Programm zeigt, wie das RGB -Image in R-, G- und B -Komponenten getrennt wird. Das Programm ist in niedriger Programmierung geschrieben, da in OpenCV die Funktion erstellt wird, die diesen Code effizienter machen würde. Dieses Beispiel vertieft jedoch ein Verständnis dafür, wie das Bild in die Matrix von Pixeln aufgeteilt wird und wie jedes Pixel separat manipuliert werden kann.

Code schreiben

#include #include "cv.H "#include" HighGui.H "Verwenden von Namespace std; int main (int argc, char ** argv) // Farbe im ersten Argument angegeben. ], Cv_load_image_color); iplimage *red = cvcreateimage (cvsize (img-> width, img-> height), img-> tiefe, img-> nchannels); iplimage *green = cvcreateimage (cvsize (img-> width, img-, img- > Höhe), img-> Tiefe, img-> nchannel); iplimage *blue = cvcreateimage (cvsize (img-> breit, img-> Höhe), img-> tiefe, img-> nchannel); // Richten Sie den Zeiger ein So greifen Sie auf IMG-Daten zu uchar * pimg = (uchar *) img-> imagedata; // Zeiger einrichten, um Daten zu schreiben. uchar * pBblue = (uchar *) blau-> imagedata; int i, j, rot, grün, blau, byte; für (i = 0; i Höhe; i ++) für (j = 0; j width; j ++)  rot = pimg [i*img-> widthStep + j*img-> nchannels + 2];grün = pimg [i*img-> widthStep + j*img-> nchannels + 1]; blau = pimg [i*img-> widthStep + j*img-> nchannels + 0]; // rote Prädium [i*img-> widthStep + j*img-> nchannels + 2] = rot; // Green pgreen [i*img-> widthStep + j*img-> nchannels + 1] = grün; // Blue pBblue [i*img-> widthStep + j*img-> nchannels + 0] = blau;  // Bilder speichern cvsaveimage (argv [2], rot); cvsaveimage (argv [3], grün); cvsaveimage (argv [4], blau); Rückkehr 0;  

KOMPILIEREN

g ++ 'pkg-config opencv--cflags-libs' \ separat-rgb.CPP -o separat -rgb 

VERWENDUNG

./separat-rgb img.PNG rot.PNG Green.PNG Blau.png
SCP- Handbuch Seite
Name SCP-Secure Copy (Remote-Dateikopieprogramm) Synopsis scp [-12346bcpqrv] [-c cipher] [-f SSH_CONFIG] [-i Identity_file] [-l limit] [-o ssh_option]...
Installation von mkvtoolnix -Matroska -Tools unter Ubuntu Linux
Dieser kurze Artikel beschreibt einfache Schritte, um die Installation einer plattformübergreifenden Tools für Matroska mkvtoolnix auf Ubuntu-System z...
VFAT Großbuchstaben kann den Verzeichnisnamen nicht erstellen
In diesem Artikel befasst sich eine Ausgabe des Namens der Erstellung des Oberzogenheitsverzeichnisses auf VFAT -Dateisystem unter Linux -System....