Logo Studenta

Procesamiento de imágenes para la clasificación de café verde

¡Este material tiene más páginas!

Vista previa del material en texto

PROCESAMIENTO DE IMÁGENES 
PARA LA CLASIFICACIÓN DE CAFÉ 
VERDE. 
 
 
 
 
 
PONTIFICIA UNIVERSIDAD JAVERIANA 
FACULTAD DE INGENIERÍA 
CARRERA DE INGENIERÍA ELECTRONICA 
BOGOTÁ D.C. 
2016 
 
 
PROCESAMIENTO DE IMÁGENES 
PARA LA CLASIFICACIÓN DE CAFÉ 
VERDE. 
 
 
 
Autores 
MANUEL ALEJANDRO ARIAS MARTA 
JORGE ANTONIO SIERRA RUIZ 
 
Director 
ING. JAIRO ALBERTO HURTADO, PhD. 
 
PONTIFICIA UNIVERSIDAD JAVERIANA 
FACULTAD DE INGENIERÍA 
CARRERA DE INGENIERÍA ELECTRONICA 
BOGOTÁ D.C. 
2016 
Agradecimientos 
 
“Ever tried, ever failed, 
No matter, try again, 
fail again, Fail better” 
 
 
Quiero agradecerle a Dios, 
a mis papas, a mi hermana 
y a todos los que estuvieron conmigo 
en este proceso, que sin la ayuda de ellos 
esto no hubiera sido posible. 
- Manuel Arias 
 
 
Quiero agradecerles a mis padres 
y mi hermana por todo el apoyo, 
por estar presentes en 
todos los momentos de mi ciclo formativo y 
 por darme la oportunidad de cumplir con 
mis metas. A la que siempre estuvo. 
- Jorge Sierra 
 
 
 
Índice general
1 Introducción 1
2 Marco teórico 2
2.1 Modelo matemático de una imagen digital . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.2 Espacios de color . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.3 Histograma de color . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.4 Filtrado de una imagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.5 Información que se puede obtener de una imagen . . . . . . . . . . . . . . . . . . . . . . . 3
2.6 ¿Por qué procesamiento de imágenes? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3 Objetivo del proyecto 4
3.1 Objetivo General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3.2 Objetivos específicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
4 Desarrollo 5
4.1 Investigación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
4.2 Toma de imágenes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
4.3 Proceso para la creación del algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
4.3.1 MATLAB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.3.2 QT (Con OpenCV) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4.4 Descriptores de Fourier (Sugerencia Jurados) . . . . . . . . . . . . . . . . . . . . . . . . . 19
5 Protocolo de pruebas 22
6 Análisis de resultados 23
6.1 Fase de entrenamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
6.1.1 MATLAB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
6.1.2 QT (Con OpenCV) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
6.2 Fase de pruebas del algoritmo final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
6.2.1 Granos Buenos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
6.2.2 Granos Malos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
7 Conclusiones y recomendaciones 29
8 Anexos 30
8.1 Anexos A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
8.2 Anexos B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Referencias 31
Índice de figuras
1 Proceso del Café. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2 Modelo de una Imagen [1] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
3 Histograma de una imagen RGB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
4 Defectos a tener en cuenta [2]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
5 Imagen base de datos 2016-1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
6 Escenario para la toma de imágenes Finalizado . . . . . . . . . . . . . . . . . . . . . . . . 7
7 Distribución LEDs tapa de arriba. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
8 Distribución LEDs tapa de abajo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
9 Diagrama de flujo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
10 Imágenes sin recortar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
11 Recorte de la imagen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
12 Proceso del recortado de la imagen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
13 Herramienta «Color Thresholder». . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
14 Color Thresholder algoritmo Negros. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
15 Color Thresholder algoritmo Película. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
16 Color Thresholder algoritmo Vinagre. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
17 Color Thresholder algoritmo Negritos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
18 Posiciones de piexeles del contorno. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
19 Descriptores de Fourier. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
20 Porcentaje de error MALTAB granos buenos. . . . . . . . . . . . . . . . . . . . . . . . . . 23
21 Porcentaje de error MALTAB granos buenos. . . . . . . . . . . . . . . . . . . . . . . . . . 24
22 Porcentaje de error MALTAB granos buenos. . . . . . . . . . . . . . . . . . . . . . . . . . 24
23 Porcentaje de error MALTAB granos buenos. . . . . . . . . . . . . . . . . . . . . . . . . . 25
24 Granos Buenos de la base de entrenamiento. . . . . . . . . . . . . . . . . . . . . . . . . . 25
25 Granos Malos de la base de entrenamiento. . . . . . . . . . . . . . . . . . . . . . . . . . . 26
26 Porcentaje de error pruebas finales granos buenos. . . . . . . . . . . . . . . . . . . . . . . . 26
27 Porcentaje de error pruebas finales granos malos . . . . . . . . . . . . . . . . . . . . . . . . 27
28 Granos buenos prueba. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
29 Granos malos prueba. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1 Introducción
Colombia se caracteriza por la producción de café de alta calidad, sin embargo, no muchos colombianos
saben acerca del proceso para su elaboración; al estar maduro el fruto, el proceso consta de cinco partes
descritas a continuación: recolección, despulpado, secado, trilla y tostado. El despulpado es el proceso donde
se retira la cáscara más gruesa del fruto, proporcionando la almendra en una membrana celulosa, por lo cual
es necesario el secado, al llegar a una humedad ideal el café pergamino está listo para el proceso de trilla
donde se quita la membrana traslúcida más delgada de la almendra, esta almendra es conocida como café
verde1, por último, el tostado es donde culmina el proceso y está listo para el consumo, en la Figura 1 se
muestra las imágenes de este proceso.
(a) Recolección [3] (b) Despulpado [4] (c) Secado [5] (d) Trillado [6] (e) Tostado [7]
Figura 1: Proceso del Café.
Sin embargo, existe un paso intermedio entre la trilla y el tostado donde se selecciona por calidad visual la
almendra de café verde, el cual es manual y tiene como parámetros el color, forma y ausencia de picaduras de
plagas que afectan las plantaciones. Generalmente el caficultor colombiano (pequeño productor) llega hasta el
secado de la almendra, donde esta se encuentra mezclada en distintas calidades. Los procesos de clasificación
normalmente son: selección manual o selección a nivel industrial, los cuales ofrecen desventajas como el
agotamiento del trabajador llevando a errores en la selección o el alto costo de la maquinaria industrial, lo
que ledificulta al pequeño productor ofrecer un producto de alta calidad. El procesamiento de imágenes en
la industria ha permitido un método no invasivo de selección visual, en el mercado se encuentran máquinas
seleccionadoras de granos por color como Xpectra Color [8],esta maquina selecciona y separa los granos de
café en dos alta y baja calidad, su funcionamiento consta de diferentes mallas en las cuales los granos caen
verticalmente y por una fuerza neumática separa los granos de esta forma se tiene una gran eficiencia, pero
su costo es muy elevado pues su precio de venta oscila alrededor de los 20.000 dólares. Para que el caficultor
colombiano pueda ofrecer un café verde de alta calidad debe asegurar algunos parámetros de la almendra al
momento de venderla, creando así la necesidad de facilitar el proceso manual llevado a cabo normalmente.
Al mejorar el proceso de una manera satisfactoria y obtener el café verde deseado este se puede comercializar
con mayor facilidad y a mejor precio no solo a nivel nacional sino internacional.
El objetivo de este trabajo de grado es desarrollar un algoritmo para la detección de defectos en café
verde mediante el procesamiento de imágenes. En este documento, se encuentra consignado el proceso para
la obtención de dicho algoritmo, el trasfondomatemático de las funciones implementadas ya sea enMATLAB
o con las librerías de OpenCV, el cómo se tomaron las fotografías y sugerencias para un futuro escalamiento
de este proyecto, todo lo anterior enfocado en lograr un posible prototipo final de bajo costo.
1El café verde producto final del proceso de trilla, se muestra en la Figura 1d.
1
2 Marco teórico
Hay distintos métodos para lograr el procesamiento de una imagen dependiendo de la manera de adqui-
sición: análoga o digital. Los métodos de procesamiento basados en la adquisición digital a diferencia de la
análoga se concentra en el desarrollo de algoritmos computacionales para la obtención de información o el
uso de diferentes herramientas diseñadas para este fin (ej. edición de imágenes). Usualmente un sistema de
procesamiento de imágenes contiene los siguientes elementos: adquisición, almacenamiento, comunicación2,
procesamiento, y despliegue [9]. A continuación se mencionan herramientas del procesamiento de imágenes
importantes y utilizadas en este trabajo de grado.
2.1 Modelo matemático de una imagen digital
Este modelo está asociado a una función bi-dimensional [1] f(x, y) cuyo valor en amplitud depende del
espacio de color en que se encuentre, de la luz que incide y refleja sobre el objeto en escena [10].
Figura 2: Modelo de una Imagen [1]
2.2 Espacios de color
Los espacios de color son diferentes organizaciones de color, estas pueden ser arbitrarias o ser descritas
por un modelo matemático que determina la manera en que el color está distribuido, y se representa en tuplas
numéricas, los espacios de color utilizados en este trabajo de grado están brevemente descritos a continuación
[11]:
• RGB:Este espacio de color utiliza la combinación de 3 canales (Red,Green,Blue), y el color resultante
de un pixel es la suma aritmética de los canales. Es una implementación de 24-bits con 3 canales cada
canal con 8-Bits.
• GRAY: Este es un espacio de color normalizado a 1 y con un solo canal, y se determina a partir de
RGB de la siguiente manera:
0.2989 ∗R+ 0.5870 ∗G+ 0.1140 ∗B
• YCrCb: Este es un espacio de color creado con base en la sugerencia del Estándar Mundial de video
digital (ITU-R BT 601). Este espacio de color es una versión escalada del espacio de color YUV. El
espacio YCrCb está descrito por las siguientes ecuaciones dependientes de RGB:
2Enlace físico para transmitir la información, ej. Transmitir información desde la memoria de una cámara a el computador.
2
Y = 0.299 ∗R+ 0.587 ∗G+ 0.114 ∗B
Cr = (R− Y ) ∗ 0.713 + 128
Cb = (B − Y ) ∗ 0.564 + 128
2.3 Histograma de color
Un histograma de color es una representación gráfica que determina la distribución de color en una imagen
[1]. En imágenes digitales, este representa el número de pixeles que tienen determinada intensidad en cierto
canal, a continuación se muestra un ejemplo.
Figura 3: Histograma de una imagen RGB
2.4 Filtrado de una imagen
El filtrado de una imagen consiste en la modificación del valor de un pixel considerando los valores
de los pixeles de la vecindad, existen diferentes tipos de filtros, los filtros en el dominio espacial que se
aplica por medio de la convolución entre un kernel (matriz del filtro) y la imagen, los filtros en el dominio
de la frecuencia que se aplican a través de transformaciones en frecuencia [12]. Estos se usan en diferentes
aplicaciones como por ejemplo reducir el ruido, resaltar los bordes, filtros pasa baja o pasa altas (filtrado en
frecuencia).
2.5 Información que se puede obtener de una imagen
A partir del procesamiento de imágenes y utilización de algoritmos como los ya creados en la librería
OpenCV, se pueden obtener descriptores de la imagen. Estos pueden ser de factor morfológico, de color u
otros descriptores. A partir de estos descriptores, normalmente valores numéricos, se interpreta la información
y se toman decisiones.
2.6 ¿Por qué procesamiento de imágenes?
La clasificación de café verde se hace por inspección visual, la cual tiene relación directa con el procesa-
miento de imágenes, además al pensar en un prototipo de bajo costo 3 se ve la posibilidad de utilizar cámaras
no especializadas y de uso común por ejemplo la cámara de un teléfono móvil.
3No es el objetivo de este trabajo de grado ofrecer un prototipo de bajo costo pero si es parte de la motivación en el desarrollo.
3
3 Objetivo del proyecto
A continuación se listan los objetivos generales y específicos postulados desde el principio de este trabajo
de grado.
3.1 Objetivo General
Desarrollar un algoritmo para la detección de defectos en café verde mediante el procesamiento de imá-
genes.
3.2 Objetivos específicos
1. Identificar los defectos en el café verde y escoger los relevantes para hacer el procesamiento de imá-
genes.
Este objetivo se cumplió. En este documento se muestra su desarrollo en la sección 4.1. Cumplir este
objetivo ayuda a tener un lineamiento claro de las características de la almendra de café a discriminar
con el algoritmo.
2. Evaluar distintos algoritmos que sean apropiados para la detección de defectos en café verde.
Este objetivo se cumplió. Se tuvieron en cuenta diferentes algoritmos y métodos, esto se verá reflejado
a lo largo de la sección 4 de este documento.
3. Diseñar un algoritmo para el procesamiento de imágenes que a partir de parámetros de forma, color y
picadura de broca discrimine la calidad del café.
Este objetivo se cumplió. El proceso descrito para lograrlo, esta en la sección 4.
4. Desarrollar los algoritmos (funciones) utilizando como plataforma de prueba MATLAB y plataforma
final C++ con OpenCV para ejecutar el sistema fuera de línea.
Este objetivo se cumplió. El proceso de la plataforma de prueba se ve en la sección 4.3.1 y el de la
plataforma final en la sección 4.3.2.
5. Evaluar el desempeño del sistema mediante la comparación de una pre-selección manual de café verde
y lo que el sistema clasifica.
Este objetivo se cumplió. Utilizando el protocolo de pruebas de la sección 5 y con el análisis de este
mostrado en la sección 6.
4
4 Desarrollo
Este proyecto inicia en una reunión con el dueño de la marca «Catación Pública» Jaime Duque, en donde
explicó la importancia que tiene conocer la diferencia entre el café de alta calidad y uno de baja calidad,
empezando por el estado visual antes del tostado, el aroma y por último el sabor. Luego de este recorrido y
de revisar las herramientas del laboratorio y necesidades existentes se llega a la idea «hacer un prototipo no
muy grande4 que clasifique el café verde por calidad» con el fin de ofrecer un producto de mejor calidad sin
la necesidad de utilizar maquinaria industrial, de esta manera ofrecer una forma de clasificación al caficultor
o a empresas como la de Jaime Duque.4.1 Investigación
Para el desarrollo de este trabajo es necesario identificar como es la almendra de café de alta calidad, a
partir de esta necesidad se buscó a un experto que asesorara en el área investigativa de este trabajo de grado. En
la Federación Nacional de Cafeteros se agendo una cita con el Coordinador de evaluación de calidad, el Ing.
Rodrigo Alarcón, quien explicó qué defectos se inspeccionan visualmente y otros que son discriminados por
procesos previos y necesarios para la clasificación, dando así una guía de defectos que se deberían detectar.
Cabe mencionar la existencia de más defectos [2] pero gracias a la guía del Ing. Rodrigo se determina
que los defectos a identificar por este trabajo de grado son los listados a continuación:
a. Mantequillo: Grano de color amarillo traslúcido.
b. Broca: Grano con pequeños orificios.
c. Reposado: Grano con alteraciones en su color normal, presenta colores que van desde el blan-
queado, crema, amarillo hasta el carmelita.
d. Negro total o parcial: Grano con coloración del pardo al negro.
e. Cardenillo: Grano atacado por hongos, recubierto de polvillo amarillo o amarillo rojizo.
f. Mordido: Grano con una herida o cortada y oxidado.
g. Vinagre: Grano con coloración desde el crema al carmelita oscuro, película plateada puede tender
a coloraciones pardo rojizas.
h. Inmaduro: Grano de color verdoso o gris claro, la cutícula no desprende.
i. Aplastado: Grano aplanado con fracturas parciales.
j. Flojo: Grano de color gris oscuro y blando.
En la Figura 4 se muestran los defectos listados. Cabe resaltar que el objetivo de este trabajo de grado no es
discriminar cada uno de estos defectos, la clasificación se hace por forma, color (en general) y presencia de
broca.
Teniendo los defectos del café a evaluar, se procede a la búsqueda de una base de datos, la cual fue
suministrada por el departamento de control de calidad de la Federación Nacional de Cafeteros. De esta
forma se obtuvo un banco de almendras de café verde, del banco se seleccionaron aleatoriamente 140 granos
de alta calidad y 145 granos de mala calidad para un total de 285 almendras de café verde. La base de datos
consta de granos de distintas latitudes de Colombia tales como Nariño, Armenia, Norte de Santander y Huila.
4Dimensiones aproximadas a la de una mesa de 1.5m x 2.5m
5
(a) Mantequillo. (b) Broca. (c) Reposado. (d) Negro total o parcial.
(e) Cardenillo. (f) Mordido. (g) Vinagre. (h) Inmaduro.
(i) Aplastado. (j) Flojo.
Figura 4: Defectos a tener en cuenta [2].
4.2 Toma de imágenes
El primer acercamiento a la toma de imágenes fue para la clase de Señales e Imágenes en el periodo
2016-1, esta toma se realizó en un salón cerrado en donde se utilizó una hoja blanca como fondo del grano.
Bajo estas condiciones se obtuvo una base de datos con diferentes errores como:
1. La iluminación para las diferentes imágenes no fue homogénea.
2. La posición de la cámara no fue fija ya que las fotos fueron tomadas desde diferentes ángulos.
3. Se utilizó una cámara con resolución muy alta5 y no se limitó la resolución (18 Megapixeles).
4. Las imágenes tenían sombra, esto debido a que no se tuvo en cuenta en reflejo de la luz en la habitación.
En la Figura 5 se muestra una imagen de la primera base de datos:
5Cámara Canon 7D Mark II
6
Figura 5: Imagen base de datos 2016-1
Para corregir estos errores y obtener una base de datos que mejorara todas las características mencionadas
anteriormente, se construyó un escenario de toma de imágenes, teniendo en cuenta la iluminación constante
y ubicada de tal manera que es posible adquirir imágenes sin brillo y sin sombra, el cual se muestra en la
Figura 6. Para la construcción del escenario se utilizó cartón paja como material en la estructura principal, las
paredes internas se forraron con papel blanco, para facilitar la reflexión y mantener el color de la luz. En total
se utilizaron ocho LEDs de 1 W [13] para lograr la iluminación adecuada, cuatro de estos en la tapa superior
distribuidos6 como se muestra en la Figura 7 estos son para iluminar la almendra de café y dar color blanco
al escenario, los otros cuatro en la tapa inferior distribuidos7 como se muestra en la Figura 8 estos se cubren
con una lámina de plexiglass blanco (3 cm entre LEDs y lamina) que sirve como plano de soporte para la
almendra de café y en conjunto con los LEDs de la tapa de abajo eliminan la sombra en la imagen.
Figura 6: Escenario para la toma de imágenes Finalizado
Para resolver el problema de imágenes con resolución muy alta se utiliza como equipo de adquisición
la cámara del celular Motorola MotoG2 [14],ya que se asemeja a las características de las cámaras de bajo
costo, teniendo en cuenta que, se limita la resolución a la más baja que este dispositivo ofrece, 6 Megapixeles
y para lograr un buen encuadre sin que se vean las paredes del escenario se utiliza el zoom digital configurado
en x2.
6Conexión en paralelo.
7Conexión en paralelo.
7
Figura 7: Distribución LEDs tapa de arriba.
Figura 8: Distribución LEDs tapa de abajo.
8
En el anexo A se encuentra el plano del escenario de toma de imágenes donde cada lamina esta numerada
de la siguiente manera:
No. Lamina Descripción Cantidad
1 Tapa Superior 1
2 Tapa inferior 1
3 Tapas laterales 2
4 Tapa lateral apoyo celular 1
5 Puerta del escenario 1
4.3 Proceso para la creación del algoritmo
Se inició el procesamiento de imágenes utilizando la herramientaMATLABya que ofrecemayor facilidad
que OpenCV en diferentes aspectos como:
1. La manipulación de imágenes.
2. Encontrar los errores del sistema de manera más directa (sintaxis, utilización de las funciones).
3. Se obtiene una escala de grises.
4. Las variables no dependen del tipo de declaración.
5. Tiene herramientas más interactivas.
Cabe mencionar que aunque con MATLAB se obtuvieron los valores de referencia para este trabajo de grado
se descarta su implementación final ya que es una herramienta con costo de licencia y este proyecto esta
guiado a la construcción de un prototipo final de bajo costo, por lo tanto se decide implementar en Qt.
En la Figura 9 se muestra el diagrama de flujo que se utiliza como guiá para el desarrollo del algoritmo.
9
Figura 9: Diagrama de flujo.
10
4.3.1 MATLAB
Acondicionamiento de imagen
Ya que todas las imágenes contienen muchos pixeles correspondientes al fondo, se toma la decisión de
recortar la imagen para dejar unicamente el grano, y así evitar un mal gasto de recursos procesando una parte
de la imagen que no aporta información. La dificultad en resolver este problema esta en que la posición y
orientación de todos los granos es diferente como se puede observar en la figura 10.
(a) (b)
(c) (d)
Figura 10: Imágenes sin recortar.
Como solución a este problema se encuentra el contorno del grano y a partir de las posiciones máximas
y mínimas se obtiene un recuadro que encierra el grano y un área menor de pixeles del fondo.
11
Figura 11: Recorte de la imagen.
Para llegar a esta solución primero se cambia el espacio de color de la imagen sin cortar, que inicialmente
esta en RGB y utilizando la función rgb2gray se obtiene una en escala de grises (Figura 12b), luego se busca
el umbral de binarizado por el método de Otsu utilizando la función graythresh, se aplica este umbral de
binarizado con la función im2bw (Figura 12c). Para eliminar áreas que están por encima del umbral pero no
son parte del grano de café «Ruido» se utiliza bwareaopen (Figura 12d), esto se puede lograr gracias a que el
área del grano es mucho mayor a la del ruido. Luego se obtiene la frontera de la imagen binarizada utilizando
la función bwboundaries (Figura 12e) y se recorta utilizando la función imcrop (Figura 12f).
12
(a) Imagen de entrada. (b) rgb2gray. (c) im2bw. (d) bwareaopen. (e) bwboundaries.
(f) imcrop.
Figura 12: Proceso del recortado de la imagen.
Análisis morfológico
Para el análisis morfológico de la imagen es necesario encontrar un descriptor que tuviesen como factor
común los granos con mordidas o aplastados.Del ejemplo de MATLAB «Identifying Round Objects» [15] se
obtuvo un método para obtener la redondez del objeto utilizando el área y perímetro con la siguiente formula:
Redondez =
4 ∗ π ∗Area
Perimetro2
Esta fórmula se utiliza con la siguiente relación:
Redondez Descripción General
1 Circulo perfecto.
0.78 Cercano a un cuadrado.
0 Cercano a una aguja.
Para efectos prácticos sobre la utilidad de la redondez en el análisis morfológico, es de notar que el grano
tiene forma ovalada y en conjunto con las estadísticas de la base de entrenamiento un granomorfológicamente
correcto debe tener redondez superior a 0.68.
13
Análisis por Color
Para esta parte del desarrollo se pensó inicialmente poder seleccionar el color de los granos buenos seg-
mentándolo para dejar pasar solo los colores buenos del grano. Al estar la imagen de entrada en RGB lo
primero que se intenta realiza es una segmentación de color utilizando un algoritmo de agrupamiento (Clus-
tering), para esto se utilizó el algoritmo de MATLAB Kmeans [16] ,el cual dependiendo del número de k
(número de agrupaciones) separa las imágenes en distintas tonalidades , estas dependerán de la distancia eu-
clidiana de la magnitud de los componentes de la imagen, es decir que si introducimos la bandera de Colombia
con un k igual a tres, este nos arrojará una imagen con tres distintos grupos etiquetados, el amarillo, azul y
rojo. A partir de lo mencionado anteriormente se encontró un problema en la utilización de este algoritmo,
ya que al ingresar la imagen y un número cualquiera de k, este segmentará la imagen en grupos ordenados
aleatoriamente y seleccionará regiones de color no relevantes. Al utilizar este algoritmo existen dos factores
que descartan su implementación, primero su tiempo de ejecución es alto y segundo al organizar los grupos
de segmentación aleatoriamente no se puede saber en cual está el color de interés.
A raíz de este inconveniente se piensa en utilizar otro algoritmo de segmentación, esta vez se agrupa-
rán los colores mediante el método de mezcla gaussianas8, este tipo de segmentación consiste en obtener
la media y varianza del histograma de cada componente de color. Como es posible que la distribución en
cada histograma tenga varios picos relevantes, se escoge las gaussianas que más se acomoden al histogra-
ma, esto utilizando la función fitgmdist. Luego al obtener las características de las gaussianas de todas las
componentes, se organizan en matrices de covarianzas y utilizando probabilidad se determina a que grupo
(Cluster) pertenece cada pixel de la imagen. Con base en la teoría mencionada se llegó a la hipótesis donde,
con el uso de una sola agrupación teniendo una media y varianza fija se podría agrupar el color deseado y
de esta forma separar los colores que sean aceptables para poder determinar el buen estado del grano, en la
búsqueda de esta media y varianza se decide tomar cortes de granos buenos y hallar estos valores. Al analizar
los resultados obtenidos teniendo una media y varianza tentativa se concluyó que no es posible encontrar una
única gaussiana que cumpliera el requerimiento, esto se debe a que en su mayoría el color de un grano bueno
es verde de distintas tonalidades, por lo cual se descarto el uso de este algoritmo.
Después de intentar segmentar la imagen mediante algoritmos de agrupamiento y en vista de que no se
obtuvieron los resultados esperados, se procede a la búsqueda de métodos y herramientas alternativas. Esta
investigación tuvo sus frutos ya que se encontró «Color Thresholder» [17] de MATLAB, la cual mediante el
uso de histogramas y dependiendo del espacio de color requerido, permite al usuario definir los valores de
umbrales para cada histograma de la imagen y así segmentar los colores deseados, de esta forma se crea una
máscara de color en la imagen de entrada y a la salida se obtiene los colores deseados. En la Figura 13 se
observa la interfaz de la herramienta.
8Teoría de mezcla de gaussianas, tomada de la clase «Procesamiento de imágenes y video 2016-3PUJ» dictada por Ing. Quiroga
J.,PhD
14
Figura 13: Herramienta «Color Thresholder».
Al tener esta herramienta y poder segmentar la imagen mediante umbrales, se define que la manera de
evaluar el color de los granos es generar diferentes algoritmos con diferentes máscaras, cada uno de estos
algoritmos dejará pasar una cantidad X de pixeles, este número se comparará con el número de pixeles totales
del grano es decir su área total, obtenido como resultado el porcentaje de pixeles que pasan9, la fórmula para
calcular este porcentaje esta definido por % = Pa∗100Pt donde % es el porcentaje de pixeles que pasan por
algoritmo, Pa el número de pixeles que pasan por algoritmo y Pt el área total del grano.
El primer algoritmo detectará los granos que sean principalmente de color negro o colores muy lejanos
al verde, es decir si el grano cumple con alguna de las características mencionadas, el algoritmo dejará pasar
muy pocos pixeles. En la Figura 14a se observa el grano de entrada a la herramienta Color Thresholder,
donde se obtendrán los umbrales para este algoritmo, y en la Figura 14b la imagen después de pasar por las
máscaras.
(a) Antes. (b) Después.
Figura 14: Color Thresholder algoritmo Negros.
Se observa que se filtro la mayor cantidad de pixeles no deseados en todas las imágenes utilizando los
siguientes umbrales.
9Se refiere a pasar, a los pixeles cuales componentes de color estan dentro de los umbrales de las mascaras.
15
R G B
Min 80 80 73
Max 148 148 148
El segundo algoritmo implementado es el encargado de filtrar el exceso de película en el grano. Para
cumplir con este objetivo se vio la necesidad de cambiar de espacio de color ya que con RGB no se pudo
filtrar de manera adecuada, por lo cual se decidió usar el espacio de color YCbCr. En la Figura 15a se observa
el grano de entrada a la herramienta Color Thresholder donde se obtendrán los umbrales para este algoritmo,
y en la Figura 15b la imagen después de pasar por las mascaras.
(a) Antes. (b) Después.
Figura 15: Color Thresholder algoritmo Película.
Como se observa en la Figura 15b se filtró la mayor cantidad de película del grano, los umbrales para
este algoritmo utilizando el espacio de color YCbCr son los siguientes:
Y Cb Cr
Min 40 121 0
Max 154 135 129
El tercer algoritmo implementado es el encargado de filtrar los colores vinagres que se encuentran en el
grano, esté al igual que el anterior algoritmo se vio la necesidad de utilizar el espacio de color YCbCr, pues
filtra de mejor manera este color. En la Figura 16a se observa el grano de entrada, donde se obtendrán los
umbrales para este algoritmo. Después de definir los umbrales para este algoritmo se obtiene el resultado
mostrado en la Figura 16b.
(a) Antes. (b) Después.
Figura 16: Color Thresholder algoritmo Vinagre.
16
Como se observa en la Figura 16b se filtró la mayor cantidad de color vinagre existente en el grano, los
umbrales para este algoritmo utilizando el espacio de color YCbCr son los siguientes:
Y Cb Cr
Min 67 113 0
Max 150 151 134
Finalmente, el cuarto algortimo que se implementó es el encargado de filtrar la presencia de hongos u
otras pequeñas afectaciones que tenga el grano, las cuales pueden ser de color negro, vinagre, amarillo o azul
oscuro. Para este caso no fue necesario hacer un cambio de espacio de color por lo que se usó RGB. En la
Figura 17a se observa el grano de entrada. Después de definidos los umbrales para este algoritmo se obtiene
el resultado mostrado en la Figura 17b.
(a) Antes. (b) Después.
Figura 17: Color Thresholder algoritmo Negritos.
Como se observa en la Figura 17b se filtró los defectos mencionados presente en el grano, los umbrales
para este algoritmo utilizando el espacio de color RGB son los siguientes.
R G B
Min 38 79 68
Max 153 152 154
Cabe mencionar que los umbrales se obtuvieron a partir de la revisión de varios granos con el defecto
analizado.
Con los cuatro algoritmos desarrollados se procede hallar los porcentajes de área que pasa por cadaalgoritmo y para todas las imágenes de la base de entrenamiento, de esta forma poder definir un umbral
de decisión y partir de una comparación de los porcentajes hallados definir si es considerado de alta o baja
calidad por color. Los valores que se definieron fueron los siguientes:
Función Umbral de decisión
Negros 45%
Película 31%
Vinagre 90%
Negritos 92.7%
Para hallar la cantidad de pixeles que deja pasar cada algoritmo se utilizó la función regionprops, la cual
retorna el área de los objetos binarizados. De igual forma se utilizó la función rgb2ycbcr para cambiar el
espacio de color de RGB a YCbCr.
17
Análisis por Broca
En esta parte del desarrollo se analizaron diferentes imágenes de granos con presencia de broca, en princi-
pio y como las picaduras de broca tienen predominancia de color negro, se intentó utilizar el binarizado de la
imagen en escala de grises con un umbral de binarización bajo, esto sirve en gran parte ya que elimina pixeles
con componentes de color no deseadas (no tienen picadura de broca) pero ya que todas las componentes RGB
aportan a la transformación de color y el binarizado es una comparación entre el valor de umbral y del pixel
(por encima de un umbral asigna 1, por debajo del umbral asigna 0 al pixel) se decide analizar alrededor de
que valores oscilan las componentes RGB de una picadura de broca, a partir de este análisis se pudo definir
umbrales para cada componente de color y así utilizar una máscara que solo deje pasar los pixeles que estén
por debajo a 33 en R, 42 en G y 42 en B. Posteriormente se usa la función bwareaopen para discriminar las
áreas menores a 70 pixeles ya que no se tendrán en cuenta en este análisis, ya que en la base de datos de
entrenamiento no hay picaduras más pequeñas a esta área.
4.3.2 QT (Con OpenCV)
¿Qué es QT? y ¿Por qué?
Qt es un framework10 multiplataforma11 útil para el desarrollo de aplicaciones, proporcionando al pro-
gramador gran flexibilidad en la creación de la interfaz gráfica para el usuario, esto gracias a la facilidad que
esta herramienta ofrece en cuanto a la manipulación de iconos, ventanas, botones, etc. sin la necesidad de
programación para posicionamiento o creación de estos objetos [19].
OpenCV
OpenCV (Open Source Computer Vision Library) es una librería creada para la utilización como soft-
ware de aprendizaje para la visión por computador y al ser una fuente abierta permite la fácil utilización y
modificación del código. Para más información referirse a la referencia [20].
Acondicionamiento de imagen
El procedimiento para el acondicionamiento de imagen consiste en recortar el exceso de fondo como se
hizo con MATLAB, pero ya que no existe la misma disponibilidad de funciones es necesario utilizar otro
camino para obtener este resultado. Se opta por suavizar toda la imagen por medio de la convolución con un
Kernel Gaussiano implementado por la función GaussianBlur [21]. Este procedimiento se repite 15 veces,
cada vez con un Kernel dos veces más grande que el anterior, de forma simétrica empezando con un Kernel
de 3x3 esto para lograr un suavizado más rápido, comparado con haber utilizado un Kernel fijo y repetir el
procedimiento 15 veces.
Luego del filtrado de la imagen se binariza la imagen utilizando el método de Otsu con la función th-
reshold [22] y se encuentran los contornos con la función findContours [23] con el contorno y la función
boundingRect [24] se obtiene una estructura con las características (alto, ancho, área, etc.) de un rectángulo
que encierra el contorno anteriormente encontrado y se recorta una copia de la imagen original utilizando las
propiedades de estructuras de OpenCV
Análisis morfológico
Ya con la imagen recortada se encuentra el contorno del grano sin suavizar los bordes con la función
findContours, se reorganizan los vectores de contornos y descartan los de área más pequeña. Con la ecuación
de redondez se halla el factor de forma y se discrimina los granos que no están por encima de 0.68.
10Estructura tecnológica, que puede servir como base para la organización y desarrollo de software. [18]
11Es posible instalarlo en distintos sistemas operativos.
18
Análisis por Color
De igual manera a como se trabajó en el desarrollo del color en MATLAB se implemento en QT, por
lo cual se crearon las mismas cuatro funciones: Negros, Película, Vinagre y Negritos. Los algoritmos que
trabajan en el espacio de color RGB es decir Negros y Negritos, utilizan los mismos valores de umbrales
que en MATLAB, y para su implementación en un principio se separaron los componentes de R, G y B en
tres distintos vectores (Qt lee la imagen en BGR), y seguido a esto se utilizó la función threshold [22], la
cual dependiendo de un umbral cambia los valores de los vectores a 255 o al valor que se desee, la siguiente
ecuación da la descripción matemática de la función:
dst(x, y) =
{
255 , dst(x, y) > Umbral
0 , dst(x, y) < Umbral
Cada vector utiliza dos etapas con la función threshold una con el umbral mínimo y otra con el umbral
máximo, de esta forma y utilizando una compuerta lógica XOR se logró crear las máscaras deseadas para la
imagen.
Por otro lado, los algoritmos que utilizan el espacio de color YCbCr es decir Película y Vinagre, para su
desarrollo primero se utilizó la función cvtColor [25] para convertir la imagen de RGB a YCbCr, seguido
a esto con los mismos umbrales hallados para estos algoritmos se utilizó la función threshold como se hizo
anteriormente. Al probar los algoritmos se estableció que los valores de los umbrales hallados en MATLAB
debían ser cambiados ligeramente, ya que las imágenes transformadas a YCbCr en QT y MATLAB tienen
valores distintos en sus componentes, estas variaciones no son muy grandes, pero si considerables, por lo
cual se decide ajustar en la componente Y un valor hacia arriba, en Cb dos valores hacia abajo y en Cr un
valor hacia arriba. Con estas variaciones se lograron crear las máscaras deseadas. Las diferencias entre las
convenciones de MATLAB y OpenCV radican en que el rango de las componentes de color son distintas
[25]12 [26]13.
Análisis por Broca
Para el desarrollo de este algoritmo se utilizaron los mismos umbrales que en MATLAB pero con la
función threshold de OpenCV, como se ha explicado anteriormente se filtran los pixeles la imagen que no
cumplen con el requisito y posterior a esto se utiliza la función contourArea [24] que retorna el número de
objetos (cerrados) binarizados con sus respectivas áreas, y al igual que enMATLAB solo se tendrán en cuenta
los objetos cuya área sea mayor a 20 pixeles.
4.4 Descriptores de Fourier (Sugerencia Jurados)
Esta sección se agrega al documento original para comparar el método utilizando como descriptor la
redondez del grano y los descriptores de Fourier del grano. «El método de los Descriptores de Fourier (DFs)
consiste en describir la forma de una figura plana cerrada a partir de su contorno»14 con base en la explicación
de [27] se toma las posiciones de los pixeles del contorno del grano obteniendo dos vectores que contienen
la señal de las posiciones en los ejes x[n] y y[n] como se muestra en la Figura 18 tanto para un grano bueno
como para un grano malo por forma.
12En el apartado de cvtColor: RGB<->YCrCb.
13En el apartado de descripción.
14Tomado de [27].
19
(a) Grano bueno por forma. (b) Grano malo por forma.
Figura 18: Posiciones de piexeles del contorno.
Luego de obtener las señales para la posición en los ejes x[n] y y[n] se genera una señal compleja utili-
zando la siguiente ecuación:
BordeComp[n] = x[n] + i ∗ y[n]
Ahora se obtiene la FFT de la función BordeComp[n] donde en los coeficientes de esta transformada
se encuentra la información de frecuencia del contorno del grano, ya que el grano tiene una forma suave
en su contorno se puede decir que las componentes de interés son las de baja frecuencia, teniendo esto en
cuenta se encuentra un modelo estimado del grano que solo contenga las componentes de baja frecuencia. Se
obtiene la distancia punto a punto entre el modelo obtenido yel contorno original, luego se promedian estos
valores obteniendo un error promedio entre el modelo y el contorno real. Se utilizaron dos modelos uno que
tiene en cuenta las 3 primeras componentes de la transformada y otro las 4 primeras, concluyendo que para
obtener un error menor es mejor usar 4 componentes como se puede observar en la Tabla 5 del Anexo B. En
la Figura 19 se puede observar el contorno complejo anteriormente mencionado, la magnitud del contorno,
la transformada de Fourier del contorno y por ultimo la comparación de el contorno real, el modelo con 3
componentes y el modelo con 4 componentes.
20
Figura 19: Descriptores de Fourier.
Para la elección del umbral de decisión se toma el máximo de este descriptor para los granos buenos de la
base de datos de entrenamiento y con esto se obtuvieron los resultados de la Tabla 5 del Anexo B. Se puede
decir entonces que se obtiene mejores resultados utilizando los descriptores de Fourier que la formula de la
redondez ya que el error del algoritmo de redondez es del 14.545% y el del algoritmo de los descriptores de
Fourier es del 9.091%.
21
5 Protocolo de pruebas
Para generar un protocolo de pruebas vale la pena mencionar el procedimiento realizado en las secciones
4.1 y 4.2 cuyo cumplimiento es de suma importancia para este y que sus resultados sean confiables.
Al ser un objetivo de este trabajo de grado discriminar el grano de café verde por color, forma y presencia
de broca, las estadísticas a evaluar determinaron la eficiencia del algoritmo para cada una de estas, de igual
manera se evaluó la eficiencia total del algoritmo, es decir la cantidad de granos buenos que pasan por malos
(falso rechazo), como la cantidad de granos malos que pasan por buenos (falsa aceptación). El protocolo de
pruebas consiste en:
1. Obtener las imágenes en un ambiente controlado.
2. Modificar el algoritmo para que este de forma cíclica evalué la base de datos previamente revisada por
un profesional y muestre en pantalla los descriptores.
3. Exportar resultados a Excel, utilizando formato condicional se resaltan los descriptores que no cumplan
con la condición para ser un grano de alta calidad.
4. Evaluar la eficiencia del algoritmo.
22
6 Análisis de resultados
6.1 Fase de entrenamiento
Para la fase de entrenamiento se seleccionaron 50 granos buenos y 55 malos estos serán evaluados tanto
en MATLAB como en QT.
6.1.1 MATLAB
En la Tabla 1 del anexo B se muestra en color rojo los valores que no superan los umbrales ya definidos
de cada función, en color verde los falsos rechazos y en naranja las falsas aceptaciones. De esta forma se
tiene como resultado que de 50 granos buenos tres granos son un falso rechazo, es decir tiene un 6% de error,
de igual forma se observa que de 55 granos malos cuatro son una falsa aceptación, es decir tiene un 7.3% de
error.
Error por forma Error por color Error por Broca
0.000% 6.000% 6.000%
Figura 20: Porcentaje de error MALTAB granos buenos.
Es importante mencionar que el falso rechazo no es la suma de los errores de cada algoritmo, si no que
se comparten resultados en los parámetros de cada grano.
Error por forma Error por color Error por Broca
14.545% 9.091% 1.818%
23
Figura 21: Porcentaje de error MALTAB granos buenos.
Es importante mencionar que la falsa aceptación no es la suma de los errores de cada algoritmo, si no que
se comparten resultados en los parámetros de cada grano.
6.1.2 QT (Con OpenCV)
En la Tabla 2 del anexo B y con la misma nomenclatura de la sección 6.1.1 se obtiene un resultado similar
al resultado obtenido con MATLAB, de 50 granos buenos cuatro granos presentan un falso rechazo y de 55
granos malos cinco presentan una falsa aceptación.
Error por forma Error por color Error por Broca
1.818% 6.000% 8.000%
Figura 22: Porcentaje de error MALTAB granos buenos.
24
Error por forma Error por color Error por Broca
16.364% 7.273% 1.818%
Figura 23: Porcentaje de error MALTAB granos buenos.
Una muestra de las imágenes que se utilizaron en la fase de entrenamiento se muestran en las Figuras 24
y 25:
Figura 24: Granos Buenos de la base de entrenamiento.
25
Figura 25: Granos Malos de la base de entrenamiento.
6.2 Fase de pruebas del algoritmo final
Para la fase de pruebas finales se tomaron 90 granos buenos y 90 malos los cuales serán evaluados úni-
camente en QT ya que es la plataforma del algoritmo final.
6.2.1 Granos Buenos
En la Tabla 3 del anexo B se observan resaltados en color verde los falsos rechazos del sistema, de 90
granos buenos 15 son falsos rechazos, de estos cinco fueron por solo color, uno solo broca y nueve por color
y broca. A partir de estos resultados se obtiene:
Error por forma Error por color Error por Broca
0.000% 15.556% 11.111%
Figura 26: Porcentaje de error pruebas finales granos buenos.
26
Una muestra de las imágenes que se utilizaron en las pruebas de granos buenos se exponen en la Figura
28.
6.2.2 Granos Malos
En la Tabla 4 del anexo B se observan resaltados en color naranja las falsas aceptaciones del sistema, de 90
granos de mala calidad seis son falsas aceptaciones. Ahora mediante el análisis de las imágenes individuales
se identifica el error por forma, color y broca el cual indica la eficiencia de estas funciones. El error es tres
por color, cuatro por broca y 15 por forma. A partir de los resultados se obtiene:
Error por forma Error por color Error por Broca
16.667% 3.333% 4.444%
Figura 27: Porcentaje de error pruebas finales granos malos
Una muestra de las imágenes que se utilizaron en las pruebas de granos malos se exponen en las Figuras
29.
27
Figura 28: Granos buenos prueba.
Figura 29: Granos malos prueba.
28
7 Conclusiones y recomendaciones
• Ya que la toma de imágenes está limitada a un ambiente controlado no se asegura el funcionamiento
de los umbrales hallados sin estas condiciones.
• Es de notar que la mayoría del procedimiento de ambas plataformas es igual pero en MATLAB es mu-
cho más fácil encontrar umbrales para la toma de decisiones ya que la programación es más flexible (no
se necesita declaración de tipo de variable), la forma de visualizar datos y manipular variables es fácil
gracias al workspace, por último las herramientas disponibles en MATLAB facilitan la manipulación
de imágenes de manera interactiva y didáctica.
• Qt es una herramienta de uso libre, utiliza un lenguaje de programación en C++ y es compatible con
OpenCV, lo que facilita su implementación en un prototipo a futuro de este trabajo de grado.
• El algoritmo planteado durante el desarrollo de este proyecto cumple con el objetivo principal, ya que
en su implementación se logró una clasificación para los granos evaluados, este con limitaciones en
cuanto al error en falso rechazo 16.7% y falsa aceptación 7.3%.
• Aunque los métodos de selección del grano de café en Colombia tradicionalmente se basan en la se-
lección manual, se concluye que el uso de un prototipo reduciría el error humano (No hay existencia
de estadísticas de un clasificador humano) causado por diferentes factores como el agotamiento del
trabajador (al ser esta una labor repetitiva) o la revisión incompleta del grano. Este trabajo de grado
es un acercamiento al prototipo que se desea desarrollar a futuro, teniendo en cuenta que el algoritmo
propuesto funciona para ambos lados del grano.
• Fue indispensable la ayuda de la Federación Nacional de Cafeteros en este trabajo de grado, ya que
proporcionaron una base de datos confiable con la cual se desarrollo este trabajo de grado
• Mediante el uso de la herramienta «Color Thresholder» de MATLAB se facilita encontrar los umbrales
para los descriptores en cualquier espacio de color.
• Para futuros proyectos:
– Se sugiere la implementación de un algoritmo de balance de blancos.
– Se sugiere el uso de una cámara con menor resolución y un encuadre mejor.
– Se sugiere el uso de descriptores de Fourier o combinación con el descriptor de redondez en el
análisis morfológico.
– Se sugiere determinar por que lado se encuentra el grano(cóncavo o plano), si se encuentra por
el lado plano ignorar los pixeles de la linea que atraviesa la almendra.
29
8 Anexos
8.1 Anexos A
Link al anexo A
8.2 Anexos B
Link al anexo B
30
https://www.dropbox.com/s/qpdi6v69orwjisf/00%20-%20Anexos%20A.pdf?dl=0
https://www.dropbox.com/s/r3f3glic36tw6se/01%20-%20Anexos%20B.pdf?dl=0
Referencias
[1] J. Quiroga, “Proc. de imÁgenes: Conceptos básicos,” 2016, rev. 16-11-16. [Online]. Available:
https://goo.gl/JckqaZ
[2] F. N. de Cafeteros de Colombia, “Defectos de café verde,” 2010, rev. 15-11-16. [Online]. Available:
https://goo.gl/GAOSEB
[3] cafecampoambiente, “Imagen de café cereza,” 2015, rev. 14-11-16. [Online]. Available: http:
//cafecampoambiente.blogspot.com.co/2015/01/cafecereza.html
[4] C. O. B. D. S. de CV, “Imagen café despulpado,” 2016, rev. 14-11-16. [Online]. Available:
http://www.cafeorganicobuyday.com/proceso.php
[5] C. Don Pepe, “Imagen secado de café,” 2013, rev. 14-11-16. [Online]. Available: http://www.
donpepecoffee.com/bola.html
[6] milagro05, “Trillacaf.” 2010, rev. 14-11-16. [Online]. Available: https://www.flickr.com/photos/
48648351@N04/4558376272/
[7] infoCafe, 2015, rev. 14-11-16. [Online]. Available: http://infocafes.com/portal/noticias-y-eventos/
en-177-crecio-la-venta-de-cafe-tostado-especial-en-el-mercado-interno/
[8] S. S. S. S. de C.V., “Xpectra color,” rev. 15-11-16. [Online]. Available: http://www.xpectracolor.com/
[9] N. Blasero, D. Botero, and J. Zuluaga, “Reconocimiento de interpretación de gestos manuales por medio
de video.” Bogotá, 2005.
[10] R. Gonzales and R. Woods, Digital Image Processing, 3rd ed. Pearson Education International, 2014.
[11] D. Forsyth, Computer Vision: A modern aproach. New Yersey, USA: Prentice Hall, 2003.
[12] J. Quiroga, “Proc. de imÁgenes: Filtrado,” 2010, rev. 16-11-16. [Online]. Available: https:
//goo.gl/tao8hd
[13] Farnell, “1w high power led,” July 2012, rev 16-11-16. [Online]. Available: http://www.farnell.com/
datasheets/1636581.pdf
[14] MOTOROLA, “Pagina de soporte motog2,” 2016, rev. 16-11-16. [Online]. Available: https:
//goo.gl/fYnQHU
[15] MATHWORKS, “Identifying round objects,” R2016b 2016, rev. 23-11-16. [Online]. Available:
https://www.mathworks.com/help/images/examples/identifying-round-objects.html
[16] ——, “kmeans,” R2016b 2016, rev. 22-1116. [Online]. Available: https://goo.gl/FTfsrc
[17] ——, “Color thresholder,” R2016b 2016, rev. 22-11-16. [Online]. Available: https://www.mathworks.
com/help/images/ref/colorthresholder-app.html?requestedDomain=www.mathworks.com
[18] Wikipedia, “Framework,” Oct 2016, rev. 24-11-16. [Online]. Available: https://es.wikipedia.org/wiki/
Framework
[19] Q. Company, “Pagina oficial qt,” 2016, rev. 23-11-16. [Online]. Available: https://www.qt.io/es/
[20] itseez, “About opencv,” 2016, rev. 23-11-16. [Online]. Available: http://opencv.org/about.html
[21] OpenCV, “Smoothing images,” 2011, rev. 23-11-16. [Online]. Available: https://goo.gl/HV97X0
31
https://goo.gl/JckqaZ
https://goo.gl/GAOSEB
http://cafecampoambiente.blogspot.com.co/2015/01/cafecereza.html
http://cafecampoambiente.blogspot.com.co/2015/01/cafecereza.html
http://www.cafeorganicobuyday.com/proceso.php
http://www.donpepecoffee.com/bola.html
http://www.donpepecoffee.com/bola.html
https://www.flickr.com/photos/48648351@N04/4558376272/
https://www.flickr.com/photos/48648351@N04/4558376272/
http://infocafes.com/portal/noticias-y-eventos/en-177-crecio-la-venta-de-cafe-tostado-especial-en-el-mercado-interno/
http://infocafes.com/portal/noticias-y-eventos/en-177-crecio-la-venta-de-cafe-tostado-especial-en-el-mercado-interno/
http://www.xpectracolor.com/
https://goo.gl/tao8hd
https://goo.gl/tao8hd
http://www.farnell.com/datasheets/1636581.pdf
http://www.farnell.com/datasheets/1636581.pdf
https://goo.gl/fYnQHU
https://goo.gl/fYnQHU
https://www.mathworks.com/help/images/examples/identifying-round-objects.html
https://goo.gl/FTfsrc
https://www.mathworks.com/help/images/ref/colorthresholder-app.html?requestedDomain=www.mathworks.com
https://www.mathworks.com/help/images/ref/colorthresholder-app.html?requestedDomain=www.mathworks.com
https://es.wikipedia.org/wiki/Framework
https://es.wikipedia.org/wiki/Framework
https://www.qt.io/es/
http://opencv.org/about.html
https://goo.gl/HV97X0
[22] ——, “Basic thresholding operations,” 2011, rev. 21-11-16. [Online]. Available: https://goo.gl/lmPPIu
[23] ——, “Structural analysis and shape des,” 2011, rev. 23-11-16. [Online]. Available: https:
//goo.gl/Beuq8c
[24] ——, “Structural analysis and shape descriptors,” 2011, rev. 23-11-16. [Online]. Available:
https://goo.gl/HTEHR4
[25] ——, “Miscellaneous image transformations.” 2011, rev. 23-11-16. [Online]. Available: https:
//goo.gl/tKAUkt
[26] MATHWORKS, “rgb2ycbcr,” R2016b 2016, rev. 21-11-16. [Online]. Available: https://goo.gl/wA7sS6
[27] E. Dvorkin, M. Goldschmit, and M. Storti, “Técnicas de procesamiento digital de imágenes: Una
aplicación para identificación de personas a travéz de los senos frontales.” pp. 6288–6289, 2010, rev.
13-12-16. [Online]. Available: http://www.cimec.org.ar/ojs/index.php/mc/article/viewFile/3449/3366
32
https://goo.gl/lmPPIu
https://goo.gl/Beuq8c
https://goo.gl/Beuq8c
https://goo.gl/HTEHR4
https://goo.gl/tKAUkt
https://goo.gl/tKAUkt
https://goo.gl/wA7sS6
http://www.cimec.org.ar/ojs/index.php/mc/article/viewFile/3449/3366
	Introducción
	Marco teórico
	Modelo matemático de una imagen digital
	Espacios de color 
	Histograma de color
	Filtrado de una imagen
	Información que se puede obtener de una imagen
	¿Por qué procesamiento de imágenes?
	Objetivo del proyecto
	Objetivo General
	Objetivos específicos
	Desarrollo
	Investigación
	Toma de imágenes
	Proceso para la creación del algoritmo
	MATLAB
	QT (Con OpenCV)
	Descriptores de Fourier (Sugerencia Jurados)
	Protocolo de pruebas
	Análisis de resultados
	Fase de entrenamiento
	MATLAB
	QT (Con OpenCV)
	Fase de pruebas del algoritmo final
	Granos Buenos
	Granos Malos
	Conclusiones y recomendaciones
	Anexos
	Anexos A
	Anexos B
	Referencias

Continuar navegando