Escreva código
- 4984
- 96
- Loren Botsford
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