Reamostragem. Os métodos populares para reamostragem de imagens incluem: Vizinho mais próximo Bilinear Bicúbico Spline Reamostragem Lanczos
|
|
- Ana Luiza da Cunha Campos
- 6 Há anos
- Visualizações:
Transcrição
1 Reamostragem A reamostragem de imagens é amplamente utilizada em processamento de imagens e vídeos. Ela é utilizada para ampliar, reduzir, e rotacionar imagens. Também é utilizada para criar efeitos como morphing/warping, para corrigir distorção da lente, para fazer interpolação de cores nos dispositivos para aquisição de imagens (câmeras, scanners,etc), para registrar imagens (criar uma única imagem grudando duas ou mais imagens), gerar imagens em coordenadas especiais como log-polar, estabilizar tremor da câmera de vídeo, para corrigir a movimentação do paciente em imagens médicas, para normalizar imagens médicas que envolvem vários sujeitos, etc. Os métodos populares para reamostragem de imagens incluem: Vizinho mais próximo Bilinear Bicúbico Spline Reamostragem Lanczos Os programas abaixo fazem ampliação/redução de imagens usando interpolação vizinho mais próximo: // vizinho.cpp pos-2016 com fator de zoom int main(int argc, char** argv) { if (argc!=4) { printf("vizinho ent.pgm sai.pgm fator\n"); erro("erro: Numero de argumentos invalido"); Mat_<GRY> a; le(a,argv[1]); double fator; sscanf(argv[3],"%lf",&fator); int nl=int(a.rows*fator); int nc=int(a.cols*fator); Mat_<GRY> b(nl,nc); for (int l=0; l<b.rows; l++) for (int c=0; c<b.cols; c++) b(l,c) = a(cvround(l/fator),cvround(c/fator)); imp(b,argv[2]);
2 //cvvizinho.cpp pos usa funcao resize do OpenCV int main(int argc, char** argv) { if (argc!=4) { printf("cvvizinho ent.pgm sai.pgm fator\n"); erro("erro: Numero de argumentos invalido"); Mat_<GRY> a; le(a,argv[1]); double fator; sscanf(argv[3],"%lf",&fator); Mat_<GRY> b; resize(a, b, Size(0,0), fator, fator, INTER_NEAREST); imp(b,argv[2]); //INTER_NEAREST nearest-neighbor interpolation 1x1 //INTER_LINEAR bilinear interpolation (used by default) 2x2 //INTER_AREA resampling using pixel area relation. It may be the preferred // method for image decimation, as it gives moire-free results. // But when the image is zoomed, it is similar to // the INTER_NEAREST method //INTER_CUBIC bicubic interpolation over 4x4 pixel neighborhood //INTER_LANCZOS4 Lanczos interpolation over 8x8 pixel neighborhood
3 // camzoom.cpp grad-2014 modificado // Muda fator de zoom ao longo do tempo. Mat_<GRY> amplia(mat_<gry> b, double fator) { Mat_<GRY> d(round(b.rows*fator),round(b.cols*fator)); for (int l=0; l<d.rows; l++) for (int c=0; c<d.cols; c++) d(l,c) = b( round(l/fator), round(c/fator) ); return d; int main() { VideoCapture vi(0); vi.set(cv_cap_prop_frame_width,640); vi.set(cv_cap_prop_frame_height,480); if (!vi.isopened()) erro("erro abertura webcam"); Mat_<COR> a; Mat_<GRY> b; int ch; namedwindow("janela"); double dt=m_pi/90; double t=0; do { vi >> a; flip(a,a,1); converte(a,b); b=amplia(b, 1+0.5*sin(t)); t+=dt; imshow("janela",b); ch=waitkey(1); while (ch!=27); // cvvizinho.cpp pos usa funcao resize do OpenCV int main() { Mat_<GRY> ent; le(ent,"lennag.tga"); Mat_<GRY> sai; resize(ent, sai, Size(600,600), 0, 0, INTER_NEAREST); imp(sai,"cvvizinho.tga"); //INTER_NEAREST nearest-neighbor interpolation 1x1 //INTER_LINEAR bilinear interpolation (used by default) 2x2 //INTER_AREA resampling using pixel area relation. It may be the preferred // method for image decimation, as it gives moire-free results. // But when the image is zoomed, it is similar to // the INTER_NEAREST method //INTER_CUBIC bicubic interpolation over 4x4 pixel neighborhood //INTER_LANCZOS4 Lanczos interpolation over 8x8 pixel neighborhood
4 Os programas abaixo fazem ampliação de imagens usando interpolação bilinear: //linear.cpp pos2016 int main() { Mat_<GRY> a; le(a,"lenna.jpg"); Mat_<GRY> b(600,600); // cria b for (int l=0; l<b.rows; l++) for (int c=0; c<b.cols; c++) { double ald = l * ((a.rows-1.0)/(b.rows-1.0)); double acd = c * ((a.cols-1.0)/(b.cols-1.0)); int fal=int(ald); int fac=int(acd); double dl=ald-fal; double dc=acd-fac; double p1=(1-dl)*(1-dc); double p2=(1-dl)*dc; double p3=dl*(1-dc); double p4=dl*dc; b(l,c) = round( p1*a(fal,fac) + p2*a(fal,fac+1) + p3*a(fal+1,fac) + p4*a(fal+1,fac+1) ); imp(b,"linear.pgm"); //cvlinear.cpp pos2012 interpolacao linear usando resize do OpenCV // do OpenCV int main() { Mat_<GRY> ent; le(ent,"lennag.tga"); Mat_<GRY> sai; resize(ent, sai, Size(600,600), 0, 0, INTER_LINEAR); imp(sai,"cvlinear.tga");
5
6 Abaixo, a imagem lennag.tga com pixels foi reamostrada para pixels usando interpolações vizinho mais próximo e bilinear: vizinho mais próximo bilinear
7 Abaixo, a imagem lennag.tga com pixels foi aumentada 320% usando as interpolações do programa Jasc Paint Shop Pro e Alchemy: vizinho mais próximo bilinear bicúbico lanczos3 (sinc)
8 Existem situações em que é preferível acessar uma imagem fornecendo coordenadas (x, y), em vez de coordenadas (l, c). Efetuar uma rotação de uma imagem é uma destas situações. Seria muito conveniente se pudesse definir o pixel central da imagem, e se pudesse acessar os pixels da imagem fornecendo coordenadas (x, y). A biblioteca Cekeikon permite este tipo de acesso, através do modo atc (centralizado com background), atx (estendido) e atr (replicado). Veja o programa abaixo: //coordxy.cpp int main() { // Mat_<GRY> t=(mat_<gry>(3,3) << 1,2,3, // 4,5,6, // 7,8,9); // ImgXyb<GRY> a=t; ImgXyb<GRY> a=(imgxyb<gry>)(mat_<gry>(3,3) << 1,2,3, 4,5,6, 7,8,9); a.centro(1,1); a.backg=255; printf("a(-1,-1)=%d\n",a(-1,-1)); printf("a(-1,+1)=%d\n",a(-1,+1)); printf("minx=%d maxx=%d miny=%d maxy=%d\n", a.minx, a.maxx, a.miny, a.maxy); printf("a(-2,-1)=%d\n",a(-2,-1)); Saída: a(-1,-1)=7 a(-1,+1)=1 minx=-1 maxx=1 miny=-1 maxy=1 a(-2,-1)=255 Neste programa, foi criada uma imagem 3 3, e o pixel central foi definido como o centro da imagem através do comando a.centro(1,1); Daí em diante, a(-1,-1) irá acessar o pixel a(x,y)=a(-1,-1). A variável a.minx devolve o menor valor da coordenada x do domínio da imagem, isto é, -1. As funções a.maxx,a.miny,a.maxy são análogos. Se acessar um pixel fora do domínio da imagem, acessa-se o pixel a.backg.
9 A fórmula da rotação é: y c=cos(θ ) s=sen(θ ) [ x n, y n ]=[ x v, y v ] [ c s s c ] x [ x v, y v ]=[ x n, y n ] [ c s s c ] onde é o ângulo da rotação, [x v, y v ] são as coordenadas de um pixel antes da rotação e [x v, y v ] são as suas coordenadas após a rotação. Usando coordenadas [l,c], a fórmula não muda: [l n, c n ]=[ l v, c v ] [ c s s c ] [l v,c v ]=[l n,c n ] [ c s s c] l c Também pode-se escrever o mesmo como (notação usada no OpenCV): [ x n y n] = [ c s s c][ x v y v] [ x v y v] = [ c s s c ][ x n y n] x y
10 Os seguintes programas efetuam uma rotação na imagem, usando interpolação vizinho mais próximo. //rotacao.cpp pos2016 int main(int argc, char** argv) { if (argc!=4) { printf("rotacao ent.pgm sai.pgm graus\n"); erro("erro: Numero de argumentos invalido"); double graus; sscanf(argv[3],"%lf",&graus); double radianos=deg2rad(graus); double co=cos(radianos); double se=sin(radianos); ImgXyb<GRY> a; le(a,argv[1]); //a.centro(a.rows/2,a.cols/2); a.backg=255; a.centro(); a.backg=255; ImgXyb<GRY> b(a.rows,a.cols); b.centro(); b.backg=255; for (int xn=b.minx; xn<=b.maxx; xn++) for (int yn=b.miny; yn<=b.maxy; yn++) { int xv=round(xn*co+yn*se); int yv=round(-xn*se+yn*co); b(xn,yn)=a(xv,yv); imp(b,argv[2]);
11 //rotacao.cpp pos2018 int main(int argc, char** argv) { if (argc!=4) { printf("rotacao ent.pgm sai.pgm graus\n"); erro("erro: Numero de argumentos invalido"); double graus; convarg(graus,argv[3]); double radianos=deg2rad(graus); double co=cos(radianos); double se=sin(radianos); Mat_<GRY> a; le(a,argv[1]); Mat_<GRY> b(a.rows,a.cols); for (int lb=0; lb<b.rows; lb++) for (int cb=0; cb<b.cols; cb++) { int lbc=lb-b.rows/2; // linha do b centralizado int cbc=cb-b.cols/2; // coluna do b centralizado int lac=round(lbc*co+cbc*se); // linha do a centralizado int cac=round(-lbc*se+cbc*co); // coluna do a centralizado int la=lac+a.rows/2; // linha do a int ca=cac+a.cols/2; // coluna do a if (0<=la && la<a.rows && 0<=ca && ca<a.cols) b(lb,cb)=a(la,ca); else b(lb,cb)=0; imp(b,argv[2]); // rotacao_cv.cpp pos2016 int main() { Mat_<GRY> ent; le(ent,"lenna.jpg"); //mostra(ent); Mat_<GRY> sai; Mat_<double> m=getrotationmatrix2d(point2f(ent.cols/2,ent.rows/2), 30, 1); cout << m << endl; warpaffine(ent, sai, m, ent.size(), INTER_LINEAR, BORDER_CONSTANT, Scalar(255)); mostra(sai); [ , , ; , , ]
12 //camrot.cpp grad-2014 modificado Mat_<GRY> rotacao(mat_<gry> ap, double angrad) { Mat_<GRY> bp(ap.rows,ap.cols); IMG_<GRY> a(ap); a.backg=255; IMG_<GRY> b(bp); double c=cos(angrad); double s=sin(angrad); for (int x=b.minx; x<=b.maxx; x++) for (int y=b.miny; y<b.maxy; y++) { double xv=x*c+y*s; double yv=-x*s+y*c; b.atc(x,y) = a.atr(round(xv),round(yv)); return bp; int main() { VideoCapture vi(0); vi.set(cv_cap_prop_frame_width,640); vi.set(cv_cap_prop_frame_height,480); if (!vi.isopened()) erro("erro abertura webcam"); Mat_<COR> a; Mat_<GRY> b; int ch; namedwindow("janela"); double t=0; do { vi >> a; flip(a,a,1); converte(a,b); b=rotacao(b,deg2rad(t)); t=t+1; imshow("janela",b); ch=waitkey(1); while (ch!=27);
13 Referências: [1] William K. Pratt, Digital Image Processing, 2nd ed., John Wiley & Sons, Escrever programa que faz warping Explicar direito interpolação sinc (mudar amostragem 40 khz para 44 khz). Explicar interpolação bicúbica Nota: Suponha um senoide de 450 Hz amostrado a 1000 amostras/segundo. Não parece senóide. Teoricamente, é possível reconstruir. Como fazer?
14 imagem original imagem log-polar
Os métodos populares para reamostragem de imagens incluem: Vizinho mais próximo Bilinear Bicúbico Spline Reamostragem Lanczos (utiliza função sinc)
Reamostragem A reamostragem de imagens é amplamente utilizada em processamento de imagens e vídeos. Ela é utilizada para ampliar, reduzir, e rotacionar imagens. Também é utilizada para criar efeitos como
Leia maisTransformações geométricas em coordenadas homogêneas 2-D
Transformações geométricas em coordenadas homogêneas 2-D Coordenadas homogêneas (ou coordenadas projetivas, abreviado CHs) são um sistema de coordenadas usada na geometria projetiva. Um ponto em R 2 (x,y)
Leia maisHalftoning. Formalização do problema de halftoning:
Halftoning Halftoning é o processo usado para converter uma imagem em níveis de cinzas G numa imagem binária B de forma que B pareça G se B for vista a uma certa distância. A imagem B é denominada de imagem
Leia maisOperadores (ou filtros) restritos à janela
Operadores (ou filtros) restritos à janela Um operador (ou filtro) restrito à janela (W-operador) é uma transformação de imagem onde a cor de um pixel da imagem de saída é escolhida em função das cores
Leia maisHighgui é uma interface para janelas bem simples do OpenCV. Esta apostila mostra alguns exemplos de uso do Highgui.
Highgui Highgui é uma interface para janelas bem simples do OpenCV. Esta apostila mostra alguns exemplos de uso do Highgui. Webcam: captura webcam e mostra na tela: //webcam.cpp #include int
Leia maisImagem f
Imagem integral (ou integral da imagem) Imagem f. 8 3 9 7 1 8 5 2 8 7 3 6 5 2 9 3 s: Integral da imagem f (imagem integral) 8 11 20 27 9 20 34 43 17 35 52 67 22 42 68 86 s(u,v) = f(u,v)+s(u-1,v)+s(u,v-1)-s(u-1,v-1)
Leia maisVID.EXE (do proeikon) contém vários programas prontos para processamento de vídeo.
Notas sobre vídeo: Sugestão de programas para editar vídeo: VIRTUALDUB e VIRTUALDUBMOD (faça uma busca no Google para o site de onde pode fazer download desses programas). Estes programas permitem visualizar
Leia maisO melhor o mais atualizado material para uma disciplina avançada são os artigos de bons congressos e revistas.
Hae Yong Kim hae@lps.usp.br http://www.lps.usp.br/~hae Sala D2-10 Ramal 91-5605 Atenção: Estas apostilas podem não ser compreensíveis sem ter assistido as aulas correspondentes. Elas não trazem todo o
Leia maisOpenCV, RaspiCam e WiringPi
OpenCV, RaspiCam e WiringPi Nesta aula, vocês vão precisar de um multímetro para visualizar as tensões de saída. Durante a aula, já podem montar o carrinho mecanicamente, fixando Raspberry, câmera, ponte-h,
Leia maisTransformada de Hough para detectar retas.
Transformada de Hough para detectar retas. A transformada de Hough é capaz de detectar grupos de pixels que pertencem a uma linha reta. Uma linha reta é descrita como y = mx + b. As características desta
Leia maisAlguns conceitos de C++ que usaremos neste curso (para quem já conhece C) Suponha que se queira criar uma função que soma 1 numa variável inteira.
Alguns conceitos de C++ que usaremos neste curso (para quem já conhece C) Referência &. Suponha que se queira criar uma função que soma 1 numa variável inteira. 1) A seguinte solução está errada: void
Leia maisPilha, fila e recursão para processar componentes conexos.
Pilha, fila e recursão para processar componentes conexos. Nesta aula, utilizaremos fila e pilha para processar os componentes conexos. 4-conectividade (city-block distance) e 8-conectividade (chessboard
Leia mais( ) [ { }] { } ( ) Medidas de distorção de imagens:
Medidas de distorção de imagens: F: Imagem de entrada (ou original) de tamanho J K Fˆ: Imagem de saída (ou processada ou estimada) de tamanho J K ) MAE: Mean absolute error F( Fˆ( j k MAE= J K Nota: Para
Leia maisExplicação simplificada de template matching (casamento de máscara, ou casamento de modelo)
Explicação simplificada de template matching (casamento de máscara, ou casamento de modelo) T R(x,y) I Template matching percorre a imagem I comparando template T com cada posição (x,y) de I. O resultado
Leia maisDCT: Discrete Cosine Transform.
DCT: Discrete Cosine Transform. Escrever a definição de DCT. DCT é amplamente usado na compressão de imagens e vídeos (JPEG, MPEG, etc). O olho humano é pouco sensível às altas freqüências. Assim, as altas
Leia maisIntrodução ao OpenCV
Instituto Federal Sul-rio-grandense Campus Pelotas Engenharia Elétrica Processamento de Imagens Digitais Introdução ao OpenCV (Parte I) Glaucius Décio Duarte Atualizado em: 20 ago. 2018 OpenCV (Open Source
Leia maisTratamento da Imagem Transformações (cont.)
Universidade Federal do Rio de Janeiro - IM/DCC & NCE Tratamento da Imagem Transformações (cont.) Antonio G. Thomé thome@nce.ufrj.br Sala AEP/33 Transformações Geométricas 3 Transformações Geométricas
Leia maisIntrodução à Programação Aula 07. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação
Introdução à Programação Aula 07 Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação ARGUMENTOS POR LINHA DE COMANDO 2 Argumento por linha de comando Na
Leia maisProgramação Estruturada I
Programação Estruturada I Introdução a Linguagem C Prof. Thiago Caproni Tavares 1 Prof. Mateus dos Santos 2 1 thiago.tavares@ifsuldeminas.edu.br 2 mateus.santos@ifsuldeminas.edu.br Última Atualização:
Leia mais{ f ( s + x, t + y )}
Morfologia Matemática Níveis de Cinzas Imagem em níveis de cinzas f : Z 2 N. Suporte de f é um subconjunto finito de Z 2 onde a imagem está realmente definida, denotada por S (f ). Circunflexo indica reflexão
Leia maisUNIVERSIDADE FEDERAL DO PARANÁ SETOR DE CIÊNCIAS DA TERRA DEPARTAMENTO DE GEOMÁTICA GEOMETRIA EPIPOLAR. Prof. Alvaro Muriel Lima Machado
UNIVERSIDADE FEDERAL DO PARANÁ SETOR DE CIÊNCIAS DA TERRA DEPARTAMENTO DE GEOMÁTICA GEOMETRIA EPIPOLAR Prof Alvaro Muriel Lima Machado 1 Geometria epipolar 2 Geometria epipolar Segmento base: interliga
Leia maisProgramação 2012/2013 1º Semestre MEEC Laboratório 2 Semana de 22 de Outubro de 2012
Programação 2012/2013 1º Semestre MEEC Laboratório 2 Semana de 22 de Outubro de 2012 1. Implemente os programas cujos fluxogramas foram definidos na aula de problemas da semana passada: Exercício 7- Calculo
Leia maisINSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE Algoritmos ANSI C - Ponteiros Copyright 2014 IFRN Agenda Memória Ponteiros Aritmética de ponteiros Arrays/strings Parâmetros de função
Leia maisComputação 2. Aula Profª. Fabiany Listas Duplamente Encadeadas
Computação 2 Aula 10.1 Listas Duplamente Encadeadas Profª. Fabiany fabianyl@utfpr.edu.br ListaEncadeada.h #ifndef _LISTAENCADEADA_H_ #define _LISTAENCADEADA_H_ #include #include #include
Leia maisAula 28: Arquivos de texto
Aula 28: Arquivos de texto Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Baseado nos slides de Guillermo Cámara-Chávez Aulas anteriores Memória Ponteiro Utilização
Leia maisAprendizagem não-supervisionada
K-means (2013): Usado para agrupar dados. Aprendizagem não-supervisionada São dadas um conjunto QX de instâncias para classificar em diferentes classes. Normalmente, fornece-se também o número de classes
Leia maisAlgoritmos e Estruturas de Dados I (DCC/003) Funções
Algoritmos e Estruturas de Dados I (DCC/003) Funções Funções Funções definem operações que são usadas frequentemente Funções, na matemática, requerem parâmetros de entrada, e definem um valor de saída
Leia maisUD VI. Retificação / Normalização de Imagens Digitais
- 56 - UD VI Retificação / Normalização de Imagens Digitais Extração Automática do Terreno Retificação de Imagens Geometria Epipolar Normalização de Estereograma Exemplo de Algoritmo de Reamostragem Epipolar
Leia maisMaterial sobre Funções AEDS 1
Material sobre Funções AEDS 1 1 Funções - revisão Funções definem operações que são usadas frequentemente Funções, na matemática, requerem parâmetros de entrada e definem um valor de saída 2 Funções -
Leia maisSistemas Operacionais e Introdução à Programação. Programação com linguagem C
Sistemas Operacionais e Introdução à Programação Programação com linguagem C 1 Entrada e saída: escrevendo na tela Veja uma comparação entre um programa Portugol e seu equivalente em C: Inicio Inteiro
Leia maisINSTITUTO FEDERAL DE! EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE Algoritmos ANSI C - Introdução Copyright 2014 IFRN Agenda Conceitos básicos ANSI C Hello World Funções em C Exercícios 2 /26 A linguagem
Leia mais!"Impressora laser: #"Preto e branco. #"1 bit por pixel. !"Impressora jato de tinta:
PEE-5796 Hae Yong Kim hae@lps.usp.br http://www.lps.usp.br/~hae Tópicos a serem abordados: 1. Dispositivos e formatos para imagens; 2. Halftoning; 2.1. ; 2.2. Ordered dithering; 1. Dispositivos e formatos
Leia maisPSI Dispositivos e formatos para imagens
PSI-5796 2004 Hae Yong Kim hae@lps.usp.br http://www.lps.usp.br/~hae Tópicos a serem abordados: 1. Dispositivos e formatos para imagens; 2. Halftoning; 2.1. ; 2.2. Ordered dithering; 1. Dispositivos e
Leia maisALGORITMOS AULA 01. Baseado nas aulas do Prof. Jorgiano Vidal
ALGORITMOS AULA 01 Baseado nas aulas do Prof. Jorgiano Vidal LINGUAGEM C Uma das grandes vantagens do C é que ele possui tanto caracterìsticas de "alto nìvel" quanto de "baixo nìvel". Linguagem de propósito
Leia maisBásico: estrutura de programa, sintaxe Interface com linha de comando
Programação em C Sintaxe Básico: estrutura de programa, sintaxe Interface com linha de comando Preprocessamento e compilação Makefiles Ponteiros e estruturas Bibliotecas, ficheiros include e funções Referências
Leia maisFUNÇÕES EM C Material adaptado da profa Silvana Maria Affonso de Lara
Universidade do Estado de Minas Gerais - UEMG Curso de Engenharia da Computação FUNÇÕES EM C 1 Material adaptado da profa Silvana Maria Affonso de Lara ROTEIRO DA AULA Definição de Função Argumentos, retornos
Leia maisCurso de C. Estruturas de Repetição 1/4/ :31 1
Curso de C Estruturas de Repetição 1/4/2008 15:31 1 Estruturas de Repetição Objetivos: Aprender: Como vincular a repetição de blocos à condições Quando utilizar cada uma das estruturas disponíveis 1/4/2008
Leia maisPSI / Dispositivos e formatos para imagens
PSI-2651 2005/2006 Hae Yong Kim hae@lps.usp.br http://www.lps.usp.br/~hae Tópicos a serem abordados: 1. Dispositivos e formatos para imagens; 2. Halftoning; 2.1. ; 2.2. Ordered dithering; 1. Dispositivos
Leia maisRotação e Interpolação
Rotação e Interpolação Resumo O objetivo desse artigo é mostrar como é feita a rotação em qualquer ângulo de imagens 2D, bem como apresentar dois métodos de interpolação de pontos vizinho mais próximo
Leia maisProgramação 2009/2010 MEEC - MEAer Laboratório 5 Semana de 26 de outubro de 2009
Programação 2009/2010 MEEC - MEAer Laboratório 5 Semana de 26 de outubro de 2009 Ao desenvolver os seguintes programas tenha em atenção o bom uso dos comentários, o uso da indentação e o correcto nome
Leia maisInterpolação em imagens
Processamento de Imagens Médicas Interpolação em imagens Prof. Luiz Otavio Murta Jr. Informática Biomédica Depto. de Física e Matemática (FFCLRP/USP) 1 Principais Tópicos Introdução Método de interpolação
Leia maisESTRUTURAS CONDICIONAIS. Baseado nos slides de autoria de Rosely Sanches e Simone Senger de Souza
ESTRUTURAS CONDICIONAIS Baseado nos slides de autoria de Rosely Sanches e Simone Senger de Souza Estruturas de Controle ESTRUTURA SEQUENCIAL ESTRUTURA CONDICIONAL ESTRUTURA DE REPETIÇÃO 2 Estruturas Condicionais
Leia maisFaculdade de Computação
Faculdade de Computação Programação Procedimental 1 o Laboratório de Programação C Prof. Cláudio C. Rodrigues 1. Introdução O objetivo desta aula prática é exercitar o uso de variáveis de vários tipos
Leia maisHeapSort. Estrutura de Dados II Jairo Francisco de Souza
HeapSort Estrutura de Dados II Jairo Francisco de Souza HeapSort Algoritmo criado por John Williams (1964) Complexidade O(NlogN) no pior e médio caso Mesmo tendo a mesma complexidade no caso médio que
Leia maisSensoriamento remoto 1. Prof. Dr. Jorge Antonio Silva Centeno Universidade Federal do Paraná 2016
Sensoriamento remoto 1 correções geométricas Prof. Dr. Jorge Antonio Silva Centeno Universidade Federal do Paraná 2016 Correções geométricas Uma imagem digital de sensoriamento remoto é uma representação
Leia maisLINGUAGEM DE PROGRAMAÇÃO C++ CLASSES E OBJETOS
LINGUAGEM DE PROGRAMAÇÃO C++ E OBJETOS Roberto S. Bigonha UFMG 4 de abril de 2012 ESTRUTURAS ESTRUTURAS ESTRUTURAS Cada estrutura (struct) cria um novo tipo Dois tipos estruturas de nomes distintos são
Leia maisVerificando corretude da triangulação
Verificando corretude da triangulação Tássio Naia dos Santos 19 de dezembro de 2011 1. O programa Este é um pequeno programa utilitário para verificação automatizada das respostas dadas por um programa
Leia maisComputacionalmente, uma imagem binária B é uma matriz preenchida com pretos (zeros) e brancos (1 ou 255).
Morfologia Matemática inária omputacionalmente, uma imagem binária é uma matriz preenchida com pretos (zeros) e brancos (1 ou 255). Matematicamente (em Morfologia Matemática), costuma-se definir uma imagem
Leia maisProgramação de Computadores II
Programação de Computadores II 2017.2 Relembrando... Linguagem C Relembrando... Linguagem C Declaração básica de um programa Relembrando... Linguagem C Declaração básica de um programa include Relembrando...
Leia maisCurso de C. Estruturas de Repetição 29/03/ :18 1
Curso de C Estruturas de Repetição 29/03/2011 15:18 1 Estruturas de Repetição Roteiro: Introdução Comando while Comando do...while Op. de incremento; formas simplificadas Comando for 29/03/2011 15:18 2
Leia maisCORREÇÃO GEOMÉTRICA DE IMAGENS DIGITAIS AULA 8
CORREÇÃO GEOMÉTRICA DE IMAGENS DIGITAIS AULA 8 Prof. Daniel C. Zanotta Daniel C. Zanotta 23/05/2017 CORREÇÃO GEOMÉTRICA IMPORTÂNCIA ELIMINAÇÃO DE DISTORÇÕES SISTEMÁTICAS; INTEGRAÇÃO DE IMAGENS DE SENSORIAMENTO
Leia maisLinguagem C++ Estruturas de controle Parte II Estruturas de repetição
Fundamentos de Programação Linguagem C++ Estruturas de controle Parte II Estruturas de repetição Prof. Bruno E. G. Gomes IFRN 1 Estruturas de Controle Permitem o controle da sequência de execução de um
Leia maisESTRUTURAS CONDICIONAIS. Introdução à Ciência da ComputaçãoI Simone Senger de Souza
ESTRUTURAS CONDICIONAIS Introdução à Ciência da ComputaçãoI Simone Senger de Souza Estruturas de Controle ESTRUTURA SEQUENCIAL ESTRUTURA CONDICIONAL ESTRUTURA DE REPETIÇÃO 2 Estruturas Condicionais Estrutura
Leia maisTAD: Tipo Abstrato de Dados (parte 2)
TAD: Tipo Abstrato de Dados (parte 2) SCC0202 Algoritmos e Estruturas de Dados I Prof. Thiago A. S. Pardo Modularização em C Programa em C pode ser dividido em vários arquivos Arquivos fonte com extensão.c
Leia maisPonteiros e Tabelas. K&R: Capitulo 5 IAED, 2012/2013
Ponteiros e Tabelas K&R: Capitulo 5 Ponteiros e Tabelas Ponteiros e endereços Ponteiros e argumentos de funções Ponteiros e tabelas Alocação dinâmica de memória Aritmética de ponteiros Tabelas de ponteiros
Leia maisPonteiros e Tabelas. K&R: Capitulo 5 IAED, 2012/2013
Ponteiros e Tabelas K&R: Capitulo 5 Ponteiros e Tabelas Ponteiros e endereços Ponteiros e argumentos de funções Ponteiros e tabelas Alocação dinâmica de memória Aritmética de ponteiros Tabelas de ponteiros
Leia maisFunções em C. Lucas Ferrari de Oliveira Professor Adjunto. Linguagem de Programação Estruturada I. Universidade Federal do Paraná
em C Linguagem de Programação Estruturada I Lucas Ferrari de Oliveira Professor Adjunto Universidade Federal do Paraná Sumário Funções: Conceitos; Forma Geral das funções; Regras de Escopo; Argumentos
Leia mais#include <stdio.h> void Swap (int *a,int *b) { int temp; temp=*a; *a=*b; *b=temp; } main () {
422 #include void Swap (int *a,int *b) int temp; temp=*a; *a=*b; *b=temp; main () int num1,num2; printf("\nentre com o primeiro valor: "); scanf ("%d",&num1); printf("\nentre com o segundo valor:
Leia maisComputação 2. Aula 8. Profª. Fabiany Arquivos
Computação 2 Aula 8 Arquivos Profª. Fabiany fabianyl@utfpr.edu.br E/S com Arquivos A linguagem C não possui nenhum comando de E/S. Todas as operações de E/S ocorrem mediante chamadas a funções de biblioteca
Leia maisAula 17: Ponteiros e Alocação Dinâmica em C
Aula 17: Ponteiros e Alocação Dinâmica em C Fernanda Passos Universidade Federal Fluminense Programação de Computadores IV Fernanda Passos (UFF) Ponteiros e Alocação Dinâmica Programação de Computadores
Leia maisListas ligadas/listas encadeadas
1 Listas ligadas/listas encadeadas Leitura recomendada: http://www.ime.usp.br/~pf/algoritmos/aulas/lista.html 2 Processamento elementar de listas Definição mais restritiva (tipo de lista possivelmente
Leia mais1 Exercícios com ponteiros
Computação para Informática Funções e Ponteiros1 EXERCÍCIOS COM PONTEIROS Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Aula Prática - Funções e ponteiros O objetivo desta aula prática
Leia maisFormatos de imagens que Cekeikon lê/imprime:
Formatos de imagens que Cekeikon lê/imprime: Formatos a serem usados no curso: Para simplificar, utilizaremos preferencialmente os 4 tipos de imagens abaixo no curso. 1) Formatos sem compactação: a) PPM
Leia maisEstruturas de Dados Aula 6: Cadeias de 28/03/2010
Estruturas de Dados Aula 6: Cadeias de Caracteres 28/03/2010 Caracteres Caracteres são representados internamente por códigos numéricos Tipo char (inteiro pequeno ) 1 byte (8 bits) 256 caracteres possíveis
Leia maisEstruturas de Dados Aula 6: Cadeias de Caracteres
Estruturas de Dados Aula 6: Cadeias de Caracteres Caracteres Caracteres são representados internamente por códigos numéricos Tipo char (inteiro pequeno ) 1 byte (8 bits) 256 caracteres possíveis Códigos
Leia maisValdex Santos. 09 de junho de 2011
Progamação Algébrica em Matlab Valdex Santos Instituto Federal da Bahia 09 de junho de 2011 Sumário 1 Introdução 2 MATLAB como linguagem de programação 3 Funções Matemáticas 4 IF, FOR e WHILE 5 outras
Leia maisOrientação a Objetos - Programação em C++
OO Engenharia Eletrônica Orientação a Objetos - Programação em C++ Slides 14: As classes List e Vector da STL (Standard Template Library). Prof. Jean Marcelo SIMÃO Classe List Uma classe Predefinida na
Leia maisUNIVERSIDADE ESTADUAL PAULISTA Campus de Sorocaba. Transformações Geométricas
UNIVERSIDADE ESTADUAL PAULISTA Campus de Sorocaba Transformações Geométricas .(x,y, P).(x,y, P) Imagem fonte Imagem transformada Deve-se notar que, como uma imagem digital é representada por uma matriz
Leia mais3.1 - Funções para manipular dados de entrada e saída padrão
1616161616161616161616161616161616161616161616161616 3- ENTRADA E SAÍDA EM C Os principais meios para executar operações de entrada e saída (E/S) são: Entrada e saída pelo console (ou padrão): teclado
Leia maisIntrodução à Programação em C Input / Output
Introdução à Programação em C Input / Output Resumo Aula Anterior Programa começa com função main() Sintaxe para definição de funções Definição de variáveis e atribuições Estruturas de controlo if-then
Leia maisAula 10 Oficina de Programação Matrizes. Profa. Elaine Faria UFU
Aula Oficina de Programação Matrizes Profa. Elaine Faria UFU - 27 Variáveis Compostas Homogêneas O que uma variável composta homogênea? - Conjunto de variáveis do mesmo tipo - É chamada de forma geral
Leia maisBruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP. Alocação Dinâmica de Memória
Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Alocação Dinâmica de Memória Alocação Estática x Dinâmica C: dois tipos de alocação de memória: Estática e Dinâmica Na alocação estática, o espaço
Leia maisComputação 2. Aula 9. Diego Addan Arquivos
Computação 2 Aula 9 Arquivos Diego Addan diegoaddan@gmail.com E/S com Arquivos A linguagem C não possui nenhum comando de E/S. Todas as operações de E/S ocorrem mediante chamadas a funções de biblioteca
Leia maisTAD: Tipo Abstrato de Dados (parte 2)
TAD: Tipo Abstrato de Dados (parte 2) SCC0502 Algoritmos e Estruturas de Dados I Programa em C pode ser dividido em vários arquivos Arquivos fonte com extensão.c Denominados de módulos Cada módulo deve
Leia maisINTERPOLAÇÃO LINEAR E BILINEAR: APLICAÇÃO EM TRANSFORMAÇÕES GEOMÉTRICAS DE IMAGEM INTRODUÇÃO
INTERPOLAÇÃO LINEAR E BILINEAR: APLICAÇÃO EM TRANSFORMAÇÕES GEOMÉTRICAS DE IMAGEM Autores: Giulia Denise Kujat VIEIRA; Milene Karine GUBETTI. Identificação autores: Estudantes do Curso Técnico em Informática
Leia maisINSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE Algoritmos ANSI C - Organização de um programa Copyright 2014 IFRN Agenda Escopo de variáveis Local Global Macros #define Organizando
Leia maisINSTITUTO FEDERAL DE! EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE
INSTITUTO FEDERAL DE! EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE Algoritmos ANSI C - Strings! Copyright 2014 IFRN Agenda O tipo char Tabela ASCII Strings Leitura Biblioteca string.h A função main
Leia maisMC-102 Aula 24 Arquivos em C e Parâmetros do Programa
MC-102 Aula 24 Arquivos em C e Parâmetros do Programa Instituto de Computação Unicamp 3 de Novembro de 2016 Roteiro 1 Arquivos Introdução a Arquivos em C Nomes e Extensões Tipos de Arquivos Caminhos Absolutos
Leia maisLaboratório de programação II
Laboratório de programação II Tratamento de exceções Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Sumário Exceções Introdução Quando Utilizar Exceções? Comandos para tratamento de
Leia maisAula 05: Condicionais (Parte 2)
Aula 05: Condicionais (Parte 2) Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Departamento de Computação UFOP Aula Anterior Breve Revisão Comandos de Decisão
Leia mais5 - COMANDOS DE CONTROLE DE PROGRAMA Em C existem os comandos de decisões, os comandos de iteração (ou de laços) e os comandos de desvios.
3636363636363636363636363636363636363636363636363636 5 - COMANDOS DE CONTROLE DE PROGRAMA Em C existem os comandos de decisões, os comandos de iteração (ou de laços) e os comandos de desvios. 5.1 - Comandos
Leia maisSCC120 - Capítulo 7 Estruturas (struct) em C
SCC120 - Capítulo 7 Estruturas (struct) em C João Luís Garcia Rosa Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos http://www.icmc.usp.br/~joaoluis 2010 1 Introduzindo
Leia maisRetangulo::Retangulo (int x0, int y0, int lado1, int lado2) { this->xref = x0; this->yref = y0; this->lado1 = lado1; this->lado2 = lado2; }
//exemplo1.cpp #include #include using namespace std; //
Leia maisHello World. Linguagem C. Tipos de Dados. Palavras Reservadas. Operadores Aritméticos. Pré e pós incremento e pré e pós decremento
Hello World Linguagem C printf("hello world!\n"); main é a função principal, a execução do programa começa por ela printf é uma função usada para enviar dados para o vídeo Palavras Reservadas auto double
Leia maisAula 27: Estruturas heterogêneas e alocação dinâmica
Aula 27: Estruturas heterogêneas e alocação dinâmica Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Departamento de Computação UFOP Aulas anteriores Memória
Leia maisIntrodução à Linguagem C. K&R: Capitulo 1. Introdução IAED, 2014/2015 2
Introdução Introdução à Linguagem C K&R: Capitulo 1 Desenvolvida em 1972 por Dennis Ritchie, nos Bell Labs, para utilização no sistema operativo UNIX O standard ANSI C (ISO/IEC 9899:1990) foi adoptado
Leia maisAula 9 Oficina de Programação Matrizes. Profa. Elaine Faria UFU
Aula 9 Oficina de Programação Matrizes Profa. Elaine Faria UFU - 26 Variáveis Compostas Homogêneas O que uma variável composta homogênea? - Conjunto de variáveis do mesmo tipo - É chamada de forma geral
Leia maisProgramação de Computadores II Aula 03. Linguagem C I
Programação de Computadores II Slides cedidos por Karina Mochetti 2018.1 C vs Python Python é uma linguagem muito mais nova, de 1991. C é muito mais eciente, os programas rodam mais rápido. Seu objetivo
Leia maisProgramação científica C++
Programação científica C++ NIELSEN CASTELO DAMASCENO Slide 8 Matrizes como argumento de funções O nome de uma matriz (sem os colchetes) representa o endereço onde a matriz está armazenada. Ao passar o
Leia maisFundamentos de Programação 1
Fundamentos de Programação 1 Linguagem C Arquivos Seqüências ou de Texto. Slides 18 Prof. SIMÃO Jean Marcelo SIMÃO 1 Arquivo de Escrita 1 fopen ( nome.txt", "w" ); fputc ( caracter, arquivo); 2 #include
Leia maisMétodos Computacionais. Operadores, Expressões Aritméticas e Entrada/Saída de Dados
Métodos Computacionais Operadores, Expressões Aritméticas e Entrada/Saída de Dados Tópicos da Aula Hoje aprenderemos a escrever um programa em C que pode realizar cálculos Conceito de expressão Tipos de
Leia maisCMP Técnicas de Programação 2 a Lista de Exercícios - Passagem de parâmetros por referência e ponteiros Max Gontijo de Oliveira
CMP1048 - Técnicas de Programação 2 a Lista de Exercícios - Passagem de parâmetros por referência e ponteiros Max Gontijo de Oliveira 1. Considere um programa em C++ que tenha duas variáveis declaradas
Leia maisCurso de C. Estruturas Condicionais
Curso de C Estruturas Condicionais Curso C - IC/UNICAMP Estruturas Condicionais Objetivos: Aprender: Como vincular a execução de blocos de sentenças à condições Quando utilizar cada uma das estruturas
Leia maisOutline. 33. Manipulação de arquivos DIM
Outline 33. Manipulação de arquivos DIM031 015.1 Leitura e escrita 3 s DIM031 33. Manipulação de arquivos 015.1 1 / 4 DIM031 33. Manipulação de arquivos 015.1 / 4 Arquivo = entidade de armazenamento de
Leia maisUSP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria
USP - ICMC - SSC SSC 0501-1o. Semestre 2010 Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria Prof. Fernando Santos Osório Email: fosorio [at] icmc. usp. br, gmail. com Página Pessoal: http://www.icmc.usp.br/~fosorio/
Leia maisCCO 016 Fundamentos de Programação
CCO 016 Fundamentos de Programação Prof. Roberto Affonso da Costa Junior Universidade Federal de Itajubá Aula 05 Entrada de dados Leia scanf ou cin Entrada de Dados Entrada de dados compreende a operação
Leia maisLeandro Soares de Sousa (DSc.) Página: Aula 03 Revisão e Conceitos C e Unix
Tópicos Especiais Leandro Soares de Sousa (DSc.) e-mail: lsousa@id.uff.br Página: http://www.ic.uff.br/~lsousa Aula 03 Revisão e Conceitos C e Unix Ferramentas para ajudá-los! 2 Programas com vários fontes
Leia maisIntrodução à Programação
Programação de Computadores Introdução à Programação Prof. Helton Fábio de Matos hfmatos@dcc.ufmg.br Agenda Algoritmo & Programa Variáveis Declaração de tipos Comando de entrada ou de leitura Comando de
Leia maisLista de Exercícios II. 01. Desenvolva um programa em C que receba um valor numérico real, verifique e mostre se esse número é positivo.
Lista de Exercícios II 01. Desenvolva um programa em C que receba um valor numérico real, verifique e mostre se esse número é positivo. #include int main(int argc, char *argv[]) { /*declaração
Leia mais