Kod pisania

Kod pisania

Ten mały program OpenCV pokazuje, jak oddzielić obraz RGB na komponenty R, G i B. Program jest napisany w programowaniu niskiego poziomu, ponieważ w OpenCV jest wbudowana funkcja, która uczyniłoby ten kod bardziej wydajny. Jednak ten przykład pogłębia zrozumienie, w jaki sposób obraz jest podzielony na matrycę pikseli i jak każdy piksel można manipulować osobno.

Kod pisania

#include #include "cv.H „#include” highgui.h "Używając przestrzeni nazw Std; int main (int argc, char ** argv) // ładuj kolor IMG określony przez pierwszy argument // iplimage *img = cvloadimage (argv [1]); iplimage *img = cvloadimage (argv [1 ], Cv_load_image_color); iplimage *red = cvcreateImage (cvSize (img-> szerokość, img-> wysokość), img-> głębokość, img-> nchannels); iplimage *green = cvcreateImage (cvsize (IMG-> width, img-, img-, img-, img-, img- > wysokość), img-> głębokość, img-> nchannels); iplimage *blue = cvCreateImage (cvSize (img-> szerokość, img-> wysokość), img-> głębokość, img-> nchannels); // konfiguruj wskaźnik pointer Aby uzyskać dostęp do danych IMG UCHAR * pimg = (UChar *) img-> entuzacedata; // wskaźnik konfiguracji do zapisu danych UCHAR * pred = (UChar *) Red-> imagedata; UChar * pGreen = (UChar *) Green-> imagedata; UChar * pBlue = (UCher *) Blue-> entuzacedata; int i, j, czerwony, zielony, niebieski, bajt; for (i = 0; i high; i ++) for (j = 0; j szerokość; j ++)  Red = pimg [i*img-> szerokie + j*img-> nchannels + 2];Green = pimg [i*img-> szerokość + j*img-> nchannels + 1]; Blue = pimg [i*img-> szerokie + j*img-> nchannels + 0]; // czerwony pred [i*img-> szerokość + j*img-> nchannels + 2] = czerwony; // Zielony pgreen [i*img-> szerokość + j*img-> nchannels + 1] = zielony; // Blue pBlue [i*img-> szerokie + j*img-> nchannels + 0] = niebieski;  // Zapisz obrazy cvsaveImage (argv [2], czerwony); CVSAVEIMAGE (Argv [3], zielony); CvSaveImage (Argv [4], niebieski); powrót 0;  

SKOMPILOWAĆ

G ++ 'pkg-config opencv--cflags-libs' \ osobne rgb.cpp -o osobne rgb 

STOSOWANIE

./Oddziel-RGB IMG.PNG czerwony.PNG Green.PNG Blue.png

Powiązane samouczki Linux:

  • Wprowadzenie do Vagrant
  • Samouczek debugowania GDB dla początkujących
  • Zagnieżdżone pętle w skryptach Bash
  • Jak zbudować aplikację Tkinter za pomocą obiektu zorientowanego na…
  • Advanced Bash Regex z przykładami
  • Mastering Bash Script Loops
  • Jak pracować z WooCommerce Rest API z Pythonem
  • Rzeczy do zainstalowania na Ubuntu 20.04
  • Wprowadzenie do automatyzacji, narzędzi i technik Linuksa
  • Wyrażenia regularne Pythona z przykładami