Control de calidad de jitomates Estefany Lima Coyotecatl, Yair Contreras De La Llave eslico_20@hotmail.com nightshadow_yaco@hotmail.com PROYECTO: Existe una tencia mundial hacia un mayor consumo de frutas y hortalizas, lo que nos lleva a tratar de consumir productos de mejor calidad, Cómo lograr esto? A nuestro equipo y a mí se nos ocurrió la idea de poder automatizar un control de calidad de jitomates depio de su color y separando los que aún no están perfectos para el consumo humano. RESUMEN: En este proyecto, se hace la selección de jitomates utilizando una cámara web y procesando las imágenes atreves de las herramientas de Matlab. 1.-Introducción La solución que se propone al problema es la creación de una seleccionadora de peso y color como método de control de calidad para la cosecha del jitomate bola. 2.-Desarrollo Para poder realizar este proyecto no apoyamos en la ayuda de Matlab que a su vez nos dirigimos a estas dos secciones: image adquisición toolbox e image processing toolbox La imagen que se muestra a continuación es del ejemplo que fue nuestro principal apoyo para realizar este programa: Color-Based Segmentation Using the L*a*b* Color Space Los ficheros de diseño de referencia (CAD) están disponibles bajo una licencia abierta, así pues eres libre de adaptarlos a tus necesidades. El programa de este ejemplo primero lee una imagen guardada a la cual le crea una matriz de
ceros, donde se guarda esta, después divide la imagen en capas a la par se va polinizando las imágenes hacio con esto una separación de colores. En nuestro caso solo se divide en dos capas puesto que solo nos interesa la intensidad del rojo y de lo que no sea tan rojo. En la siguiente ventana podemos observar aceptado. Puesto que nuestro jitomate si pasa por las normas de calidad también nos da un cero este nos indica que el jitomate sigue en la banda de lo contrario se movería el servomotor y lo desplazaría a un lado. A continuación se muestra la banda por donde van a pasar jitomates y el servomotor adecuado a una palanca que moverá los que no sean de calidad. En la imagen que se muestra a continuación podemos ver que efectivamente nuestro programa si distingue entre rojo y no rojo.
Arduino puede tomar información del entorno a través de sus pines de entrada de toda una gama de sensores y puede afectar aquello que le rodea controlando luces, motores y otros actuadores. El microcontrolador en la placa Arduino se programa mediante el lenguaje de programación Arduino y el entorno de desarrollo Arduino. Los proyectos hechos con Arduino pueden ejecutarse sin necesidad de conectar a un ordenador, si bien tienen la posibilidad de hacerlo y comunicar con diferentes tipos de software (p.ej. Flash, Processing, MaxMSP). Las placas pueden ser hechas a mano o compradas montadas de fábrica; el software puede ser descargado de forma gratuita. Material Servomotor con cubierta de aluminio adecuado con una palanca. Motor de DC El motor de corriente CONTINUA es una máquina que convierte la energía eléctrica en mecánica, provocando un movimiento rotatorio, gracias a la acción del campo magnético Cámara web Una cámara web es una pequeña cámara digital conectada a una computadora la cual puede capturar imágenes y transmitirlas a través de Internet, ya sea a una página web o a otra u otras COMPUTADORAS de forma privada. Arduino Arduino es una plataforma de electrónica abierta para la creación de prototipos basada en software y hardware flexibles y fáciles de usar. Se creó para artistas, diseñadores, aficionados y cualquiera interesado en crear entornos u objetos interactivos. % vidobj = videoinput('winvideo'); % set(vidobj,'returnedcolorspace','rgb') % snapshot = getsnapshot(vidobj); fabric = imread('c:\users\fani\documents\matlab\ fani_1.png'); load regioncoordinates; %
% fabric = imread('c:\users\public\pictures\jitomate.png '); % load regioncoordinates; ncolors = 2; sample_regions = false([size(fabric,1) size(fabric,2) ncolors]); sample_regions(:,:,count) = roipoly(fabric,region_coordinates(:,1,count),... region_coordinates(:,2,count)); imshow(sample_regions(:,:,2)),title('sample region for red'); cform = makecform('srgb2lab'); lab_fabric = applycform(fabric,cform); a = lab_fabric(:,:,2); b = lab_fabric(:,:,3); color_markers = repmat(0, [ncolors, 2]); color_markers(count,1) = mean2(a(sample_regions(:,:,count))); color_markers(count,2) = mean2(b(sample_regions(:,:,count))); %disp(sprintf('[%0.3f,%0.3f]',color_markers( 2,1),color_markers(2,2))); color_labels = 0:nColors-1; a = double(a); b = double(b); distance = repmat(0,[size(a), ncolors]); distance(:,:,count) = ( (a - color_markers(count,1)).^2 +... (b - color_markers(count,2)).^2 ).^0.5; [value, label] = min(distance,[],3); label = color_labels(label); clear value distance; rgb_label = repmat(label,[1 1 3]); segmented_images = repmat(uint8(0),[size(fabric), ncolors]); color = fabric; color(rgb_label ~= color_labels(count)) = 0; segmented_images(:,:,:,count) = color; imshow(segmented_images(:,:,:,2)), title('red objects'); aux=segmented_images(:,:,:,2); %%%%%%%%%%%%%%%% rojo=0; control=50; q=0; aceptado=0; for count1 = 1 : size(fabric,1) for count2 = 1 : size(fabric,2) if aux(count1, count2) > 0 rojo=rojo+1; q=(control*(size(fabric,1))*(size(fabric,2))/10 0); if rojo<q aceptado=0; aceptado %%%%%%%%%% CONCLUSIONES Concluimos que sin la ayuda del soporte técnico de matlab, sus ejemplos no podríamos no podría a ver sido posible hacer este proyecto. Los apuntes y la información dada en clase, a través del Dropbox etc. sido de gran peso para la elaboración de este proyecto 3.-Agradecimientos A nuestro profesor Jaime Cid Monjaraz por enseñarnos e impulsarnos a aprer sobre el procesamiento de imágenes, invitarnos al
concurso de prototipos con todo esto nos ha hecho crecer como estudiantes. 4.-REFERENCIAS APUNTOES DEL PROFESOR PROCESAMIENTO DE IMÁGENES CON MATLAB Ayuda del programa de Matlab