Solucion ejercicio informatica

Solo disponible en BuenasTareas
  • Páginas : 5 (1229 palabras )
  • Descarga(s) : 0
  • Publicado : 14 de noviembre de 2011
Leer documento completo
Vista previa del texto
#include "stdafx.h"
#include <cv.h>
#include <cxcore.h>
#include <highgui.h>

#define ancho 512 //ancho de la imagen
#define alto 512 //alto de la imagen

//Carga en la matriz la imagen dada
void dame_matriz(unsigned char matriz[alto][ancho], IplImage *imagen);

//Muestra la imagen cargada en la matriz en pantalla
void muestra_imagen(unsigned charmatriz[alto][ancho]);
void negativo(unsigned char matriz[alto][ancho],unsigned char destino[alto][ancho]);
void especular(unsigned char matriz[alto][ancho],unsigned char destino[alto][ancho]);
void invertida(unsigned char matriz[alto][ancho],unsigned char destino[alto][ancho]);
void girar_derecha(unsigned char matriz[alto][ancho],unsigned char destino[alto][ancho]);
void girar_izquierda(unsigned charmatriz[alto][ancho],unsigned char destino[alto][ancho]);
void zoom(unsigned char matriz[alto][ancho],unsigned char destino[alto][ancho]);

void main(void)
{ unsigned char matriz1[alto][ancho];
unsigned char matriz2[alto][ancho];
unsigned char destino[alto][ancho];

IplImage *imagen1 = cvLoadImage("lena.jpg",0);
IplImage *imagen2 = cvLoadImage("baboon.jpg",0);dame_matriz(matriz1,imagen1);
dame_matriz(matriz2,imagen2);
muestra_imagen(matriz1);
muestra_imagen(matriz2);
negativo(matriz1,destino);
muestra_imagen(destino);
especular(matriz1,destino);
muestra_imagen(destino);
girar_derecha(matriz1,destino);
muestra_imagen(destino);
girar_derecha(matriz1,destino);
muestra_imagen(destino);
zoom(matriz1,destino);muestra_imagen(destino);
// ---------------COMPLETAR -----------------------------




}

void dame_matriz(unsigned char matriz[alto][ancho], IplImage *imagen){
IplImage *copia;
int i,j,k=0;
copia = cvCloneImage(imagen);
for(i=0;i<alto;i++)
for(j=0;j<ancho;j++)
matriz[i][j]=copia->imageData[k++];

}

void muestra_imagen(unsigned charmatriz[alto][ancho]){
int i,j,k=0;
IplImage* img = cvCreateImage(cvSize(512,512), 8, 1);
for(i=0;i<alto;i++)
for(j=0;j<ancho;j++)
img->imageData[k++]=matriz[i][j];

cvNamedWindow("Imagen:",1);
cvShowImage("Imagen:",img);
cvWaitKey();
cvDestroyWindow("Imagen:");
cvReleaseImage(&img);

}
void negativo(unsigned char matriz[alto][ancho],unsigned chardestino[alto][ancho]){
int i,j;
for(i=0;i<=511;i++){
for(j=0;j<=511;j++)
destino[i][j]=255-matriz[i][j];
}


}
void especular(unsigned char matriz[alto][ancho],unsigned char destino[alto][ancho]){
int i,j;
for(i=0;i<=511;i++){
for(j=0;i<=511;j++)
destino[i][j]=matriz[i][511-j];}

}
void invertida(unsigned char matriz[alto][ancho],unsigned chardestino[alto][ancho]){

int i,j;
for(i=0;i<=511;i++){
for(j=0;i<=511;j++)
destino[i][j]=matriz[511-i][j];}

}

void girar_derecha(unsigned char matriz[alto][ancho],unsigned char destino[alto][ancho]){

int i,j;
for(i=0;i<=511;i++){
for(j=0;i<=511;j++)
destino[i][j]=matriz[511-j][511-i];}

}
void girar_izquierda(unsigned char matriz[alto][ancho],unsigned chardestino[alto][ancho]){

int i,j;
for(i=0;i<=511;i++){
for(j=0;i<=511;j++)
destino[i][j]=matriz[511-i][511-j];}

}
void zoom(unsigned char matriz[alto][ancho],unsigned char destino[alto][ancho]){
int i,j;
for(i=0;i<=511;i++){
for(j=0;i<=511;j++)
destino[i][j]=matriz[2*i][2*j];}

}

#include "stdafx.h"
#include <cv.h>
#include <cxcore.h>#include <highgui.h>

#define ancho 512 //ancho de la imagen
#define alto 512 //alto de la imagen

//Carga en la matriz la imagen dada
void dame_matriz(unsigned char matriz[alto][ancho], IplImage *imagen);

//Muestra la imagen cargada en la matriz en pantalla
void muestra_imagen(unsigned char matriz[alto][ancho]);
void negativo(unsigned char matriz[alto][ancho],unsigned char...
tracking img