Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Informatica ejercicio matlab, Ejercicios de Informática

ejercicio informatica dame puntos porfa

Tipo: Ejercicios

2021/2022

Subido el 17/02/2022

usuario desconocido
usuario desconocido 🇪🇸

2 documentos

1 / 4

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Asignatura / Gaia: INFORMÁTICA
Curso / Kurtsoa:
Nombre / Izena:
Fecha / Data: 10/12/2019
EN SU CUENTA SE ENCUENTRA EL SIGUIENTE DIRECTORIO:
P:\MatlabDiciembre2019
ESTE ES EL DIRECTORIO QUE SE LE VA A RECOGER AL TERMINAR EL EXAMEN, ASÍ QUE TODO LO
QUE HAGA DEBE QUEDAR GUARDADO AQUÍ. POR CADA EJERCICIO HAY UNA CARPETA DONDE
GUARDARÁ LA SOLUCIÓN A DICHO EJERCICIO.
RECUERDE QUE LOS EJEMPLOS MOSTRADOS EN EL ENUNCIADO TIENEN LA FINALIDAD DE
COMPRENDER MEJOR EL PROBLEMA PERO QUE EL PROGRAMA A DESARROLLAR TIENE QUE
SER GENERAL.
EJERCICIO 1 (4.5 PUNTOS)
Se quiere realizar un programa que permita esconder a Wally en cualquier imagen. Para
conseguirlo, programaremos los siguientes apartados. El ejercicio tendrá un único fichero main
desde donde se harán las llamadas a las funciones de cada apartado.
A) (1.25 puntos) Programar una función que dada una imagen calcule su espejo, tal y como
se muestra en la siguiente figura. Para probar la función utilizará la imagen wally.jpg’.
Imagen original
Imagen espejo
La cabecera de la función sería la siguiente:
function imgEspejo= CalcularEspejo (imagen)
donde imagen es la hipermatriz de la imagen inicial e imgEspejo es la hipermatriz que
guarda la imagen resultante.
B) (2 puntos) Para poder esconder a Wally en una imagen con el objetivo de que sea difícil
encontrarle, tendremos que reducir el tamaño de su imagen. Para conseguirlo,
programaremos una función que consiga reducir la imagen de entrada en un factor N. Se
considerará que N será siempre divisor tanto del numero de filas como de columnas de la
variable “imagen”. La cabecera de la función sería la siguiente:
function imgSmall=Reducir_Imagen(imagen, N)
donde imagen es la hipermatriz de la imagen inicial, N el factor de reducción e imgSmall
es la hipermatriz que guarda la imagen resultante de tamaño reducido.
pf3
pf4

Vista previa parcial del texto

¡Descarga Informatica ejercicio matlab y más Ejercicios en PDF de Informática solo en Docsity!

Asignatura / Gaia: INFORMÁTICA Curso / Kurtsoa: Nombre / Izena: Fecha / Data: 10 / 12 /201 9 EN SU CUENTA SE ENCUENTRA EL SIGUIENTE DIRECTORIO:

P:\MatlabDiciembre 2019

ESTE ES EL DIRECTORIO QUE SE LE VA A RECOGER AL TERMINAR EL EXAMEN, ASÍ QUE TODO LO

QUE HAGA DEBE QUEDAR GUARDADO AQUÍ. POR CADA EJERCICIO HAY UNA CARPETA DONDE

GUARDARÁ LA SOLUCIÓN A DICHO EJERCICIO.

RECUERDE QUE LOS EJEMPLOS MOSTRADOS EN EL ENUNCIADO TIENEN LA FINALIDAD DE

COMPRENDER MEJOR EL PROBLEMA PERO QUE EL PROGRAMA A DESARROLLAR TIENE QUE

SER GENERAL.

EJERCICIO 1 (4. 5 PUNTOS)

Se quiere realizar un programa que permita esconder a Wally en cualquier imagen. Para conseguirlo, programaremos los siguientes apartados. El ejercicio tendrá un único fichero main desde donde se harán las llamadas a las funciones de cada apartado. A) ( 1. 25 puntos) Programar una función que dada una imagen calcule su espejo, tal y como se muestra en la siguiente figura. Para probar la función utilizará la imagen ‘ wally.jpg’. Imagen original Imagen espejo La cabecera de la función sería la siguiente: function imgEspejo= CalcularEspejo (imagen) donde imagen es la hipermatriz de la imagen inicial e imgEspejo es la hipermatriz que guarda la imagen resultante. B) ( 2 puntos) Para poder esconder a Wally en una imagen con el objetivo de que sea difícil encontrarle, tendremos que reducir el tamaño de su imagen. Para conseguirlo, programaremos una función que consiga reducir la imagen de entrada en un factor N. Se considerará que N será siempre divisor tanto del numero de filas como de columnas de la variable “imagen”. La cabecera de la función sería la siguiente: function imgSmall=Reducir_Imagen(imagen, N) donde imagen es la hipermatriz de la imagen inicial, N el factor de reducción e imgSmall es la hipermatriz que guarda la imagen resultante de tamaño reducido.

A continuación se muestra un ejemplo de la imagen reducida con N=. Imagen original de tamaño 8x8 Imagen reducida con N=

x 11

x 21

x 31

x 41

x 51

x 61

x 12

x 22

x 32

x 42

x 52

x 62

x 13

x 23

x 33

x 43

x 53

x 63

x 14

x 24

x 34

x 44

x 54

x 64

x 15

x 25

x 35

x 45

x 55

x 65

x 16

x 26

x 36

x 46

x 56

x 66

x 71 x 72 x 73 x 74 x 75 x 76

x 81 x 82 x 83 x 84 x 85 x 86

x 17

x 27

x 37

x 47

x 57

x 67

x 77

x 88

x 18

x 28

x 38

x 48

x 58

x 68

x 78

x 88

Y 11 Y 21 Y 12 Y 22 Los píxels de la imagen reducida se calculan realizando la media de los NN pixels.* A continuación se muestran las operaciones a realizar para calcular los pixels Y 11 y Y 12 de la imagen reducida para N=4. Y 11 =(x 11 +x 12 +x 13 +x 14 +x 21 +x 22 +x 23 +x 24 +x 31 +x 32 +x 33 +x 34 +x 41 +x 42 +x 43 +x 44 )/ Y 12 =(x 15 +x 16 +x 17 +x 18 +x 25 +x 26 +x 27 +x 28 +x 35 +x 36 +x 37 +x 38 +x 45 +x 46 +x 47 +x 48 )/ Tendrá que probar esta función con la imagen de Wally y con dos valores de N: N=4 y N=8. Las imagenes resultantes se guardarán en dos ficheros llamados ‘ wally 4 .jpg’ ywally 8 .jpg’ respectivamente. C) ( 1 .25 puntos ) Por último, se programará una función que dadas dos hipermatrices que representan dos imágenes, permita superponer una imagen en otra. En este caso, superpondremos la imagen reducidad de Wally en otra imagen. La cabecera de la función sería la siguiente: function imagen_super=Superponer_Imagen(imagen_s, imagen_b, px, py) Esta función superpondrá los pixeles no verdes de la imagen pequeña ( imagen_s ) sobre la grande ( imagen_b ) tomando como punto de partida la posición X,Y ( px,py ) de la imagen grande. Se considerará que un pixel es verde si se da la siguiente condición: R<0.3&G>0.7&B<0.3. Tendrá que tener en cuenta que únicamente se podrá superponer la imagen si es posible superponerla en su totalidad. Puede probar esta función superponiendo la imagen reducida de Wally con un factor de 8 (N=8) al fichero ‘ maraton.jpg’ , siendo px=205 y py=178. La imagen resultante se guardará con el nombre ‘ maraton_wally.jpg’. Importante : si no ha conseguido programar la función Reducir_Imagen de forma correcta, puede realizar este apartado utilizando el fichero ‘ wally_8.jpg ’, que ya ha sido previamente reducido con N=8. EJERCICIO 2 (5.5 PUNTOS) En este ejercicio se va a programar un método alternativo a los métodos de ordenación vistos en clase. Para programar este método será necesario crear un array con tantos elementos como

vector:38 34 6 6 4 0 nElem: vector:8 9 …… La cabecera de la función se deja a criterio del alumno. El tamaño del vector será un número aleatorio entre 1 y 20 y los números del array podrán tener valores comprendidos entre 0 y 50. Para generar un número aleatorio entre 0 y un valor se utilizará la siguiente instrucción, donde tendrá que sustituir valor por el número hasta el cual quiere calcular números aleatorios: num=floor(rand()valor)* Tiene un ejemplo de un posible fichero ‘ pruebas.txt’ en la carpeta del examen. D) ( 1 punto) Con la información contenida en el fichero ‘ pruebas.txt’ se quiere programar una función llamada CargarInfo , para crear el siguiente vector de estructuras, donde tendremos un campo vInicial donde se guardará el vector contenido en el fichero y un campo vOrdenado, donde se guardará el vector una vez ordenado llamando a la función programada en el apartado A. La cabecera de la función se deja a criterio del alumno. IMPORTANTE : Si no ha conseguido programar la función del apartado A, podrá realizar este ejercicio utilizando la función sort de Matlab. E) ( 1 punto) Programar una función que guarde la información contenida en el vector de estructuras en un fichero llamado ‘ Resultados.txt’. La cabecera de la función sería: function EscribirFichero (info, fname) donde info es el vector de estructuras donde está la información y fname es el nombre del fichero donde se guardará dicha información. El formato del fichero sería el siguiente: vInicial:32 5 46 9 13 39 24 38 vOrdenado: 5 9 13 24 32 38 39 46 vInicial:13 1 33 21 22 30 2 vOrdenado:1 2 13 21 22 30 vInicial:38 34 6 6 4 0 vOrdenado: 0 4 6 6 34 38 …… vInicial: vOrdenado: datos 32 5 46 9 13 39 24 38 13 1 33 21 22 30 2 5 9 13 24 32 38 39 46 1 2 13 21 22 30 38 34 6 6 4 0 0 4 6 6 34 38 vInicial: vOrdenado: vInicial: vOrdenado: ...