Escreva código

Escreva código

Este pequeno programa OpenCV demonstra como separar a imagem RGB em componentes R, G e B. O programa é escrito em programação de baixo nível, pois há uma construção em função no OpenCV, o que tornaria esse código mais eficiente. No entanto, este exemplo aprofunda um entendimento sobre como a imagem é dividida em matriz de pixels e como cada pixel pode ser manipulado separadamente.

Escreva código

#include #include "cv.h "#include" highgui.h "Usando namespace std; int main (int argc, char ** argv) // carrega a cor img especificada pelo primeiro argumento // iplimage *img = cvloadImage (argv [1]); iplimage *img = cvloadimage (argv [1 ], Cv_load_image_color); iplimage *vermelho = cvcreateImage (cvsize (img-> width, img-> altura), img-> profundidade, img-> nchannels); iplimage *verde = cvcreateImage (cvsize (img-> width, img- > altura), img-> profundidade, img-> nChannels); iplimage *azul = cvcreateImage (cvsize (img-> width, img-> altura), img-> profundidade, img-> nchannels); // configurar o ponteiro Para acessar dados img uchar * pimg = (uchar *) img-> imagedata; // configurar ponteiro para escrever dados uchar * pred = (uchar *) vermelho-> imagedata; uchar * pgreen = (uchar *) verde-> imagedata; uchar * pblue = (uchar *) azul-> imagedata; int i, j, vermelho, verde, azul, byte; para (i = 0; i altura; i ++) for (j = 0; j largura; j ++)  vermelho = pimg [i*img-> widthstep + j*img-> nchannels + 2];verde = pimg [i*img-> widthstep + j*img-> nchannels + 1]; azul = pimg [i*img-> widthstep + j*img-> nchannels + 0]; // vermelho pred [i*img-> widthstep + j*img-> nchannels + 2] = vermelho; // verde pgreen [i*img-> widthstep + j*img-> nchannels + 1] = verde; // azul pblue [i*img-> widthstep + j*img-> nchannels + 0] = azul;  // salvar imagens cvSaveImage (argv [2], vermelho); cvSaveImage (argv [3], verde); cvSaveImage (argv [4], azul); retornar 0;  

COMPILAR

G ++ 'PKG-CONFIG OPENCV--CFLAGS--LIBS' \ separa-rgb.cpp -o separado -rgb 

USO

./RGB separado img.png vermelho.png verde.png azul.png

Tutoriais do Linux relacionados:

  • Introdução ao Vagrant
  • Tutorial de depuração do GDB para iniciantes
  • Loops aninhados em scripts de basquete
  • Como construir um aplicativo Tknter usando um objeto orientado…
  • Bash Regex avançado com exemplos
  • Mastering Bash Script Loops
  • Como trabalhar com a API de Rest WooCommerce com Python
  • Coisas para instalar no Ubuntu 20.04
  • Uma introdução à automação, ferramentas e técnicas do Linux
  • Expressões regulares do Python com exemplos