74

Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens

  • Upload
    phamdat

  • View
    213

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 2: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 3: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 4: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 5: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 6: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 7: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 8: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 9: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 10: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 11: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 12: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 13: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 14: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 15: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 16: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 17: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 18: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 19: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 20: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 21: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 22: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 23: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 24: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 25: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 26: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 27: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 28: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 29: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 30: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 31: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 32: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 33: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 34: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 35: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 36: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 37: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 38: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 39: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 40: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 41: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 42: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 43: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 44: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 45: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 46: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens

iterationRGB

R

B

G

pixel

value > 0.95?

Rnew(x,y) = 0

Gnew(x,y) = 0

Bnew(x,y) = 0

Rnew(x,y) = R(x,y)

Gnew(x,y) = G(x,y)

Bnew(x,y) = B(x,y)

no

yes

interpolationRGBnew

Page 47: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens

iterationRGB

R

B

GPrewitt edge

detectortemp=(R+G+B)/3

pixel

value != 1?

no yes

temp(x,y) = 0 do nothing

RGBnew

Page 48: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 49: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens

grayscale

image

histogram

processing

histogram

analysis

iteration

mean of

each class

class

means

threshold = means

segmented

imagesegmentation

if threshold = means

no yes

Page 50: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens

iterationRGB

R

B

G

no

yes

RGBnew

max_pixel

value of

(R,G,B)(x,y)

max>red(x,y)

+10% max>green(x,y)

+10%

max>blue(x,y)

+10%

Rnew(x,y) = 0

Gnew(x,y) = 0

Bnew(x,y) = 0

do nothing

Page 51: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 52: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 53: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 54: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 55: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 56: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 57: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 58: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 59: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 60: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 61: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 62: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 63: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens

%% inicio close all clear all clc % leitura image_input = uigetfile('*.*', 'Select an Image'); image_input = imread(image_input); image_input = im2double(image_input); % separação e expansão red = imadjust(image_input(:, :, 1)); green = imadjust(image_input(:, :, 2)); blue = imadjust(image_input(:, :, 3)); % concatenação image_input(:, :, 1) = red; image_input(:, :, 2) = green; image_input(:, :, 3) = blue; %% remover/suavizar reflexos % remove_glare [image_input, red, green, blue] = remove_glare(image_input); %% pré-processamento % mediana h1 = [9 9]; h2 = [15 15]; h3 = [21 21]; % best red = medfilt2(red, h2); green = medfilt2(green, h2); blue = medfilt2(blue, h2); % concatenação image_input(:, :, 1) = red; image_input(:, :, 2) = green; image_input(:, :, 3) = blue; %% orlas % get_contour [output_thresc, outputc, redc, greenc, bluec] = get_contour(image_input); % gradiente hor = fspecial('sobel'); ver = hor'; redhor = imfilter(red, hor); redver = imfilter(red, ver); red = sqrt(redhor.^2 + redver.^2); greenhor = imfilter(green, hor); greenver = imfilter(green, ver); green = sqrt(greenhor.^2 + greenver.^2); bluehor = imfilter(blue, hor); bluever = imfilter(blue, ver); blue = sqrt(bluehor.^2 + bluever.^2); % laplacian w = fspecial('laplacian'); red = imadjust(imfilter(red,w)); green = imadjust(imfilter(green,w));

Page 64: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens

blue = imadjust(imfilter(blue,w)); %% segmentação % otsu red_bin = im2bw(red,graythresh(red)); green_bin = im2bw(green,graythresh(green)); blue_bin = im2bw(blue,graythresh(blue)); % mip [output, red, green, blue] = mip(image_input); % iterative_threshold red = iterative_threshold(red); green = iterative_threshold(green); blue = iterative_threshold(blue); % watershed output = rgb2gray(image_input); output = watershed(output); output = label2rgb(output); % hybrid_watershed output = hybrid_watershed(image_input); % region growing output = rgb2gray(image_input); [x y] = getpts(figure,imshow(output)); x = round(x); y = round(y); threshold = 0.1; output = region_growing(output,x,y,threshold); % snakes % (...) % acwe image_gray = rgb2gray(image_input); mask = 'whole'; num_iter = 500; mu = 0.3; method = 'multiphase'; output = chenvese(image_gray,mask,num_iter,mu,method); %% saida figure, imshow(output);

Page 65: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens

function [output, red, green, blue] = remove_glare(input) % separar em cada canal red = input(:, :, 1); green = input(:, :, 2); blue = input(:, :, 3); % retirar pontos muito brilhantes, coincidentes nos 3 canais R G B [x y] = size(red); for i = 1:x for j = 1:y if (red(i,j)>0.95 && green(i,j)>0.95 && blue(i,j)>0.95) red_max(i,j) = red(i,j); green_max(i,j) = green(i,j); blue_max(i,j) = blue(i,j); else red_max(i,j) = 0; green_max(i,j) = 0; blue_max(i,j) = 0; end end end % suavização das máscaras w = fspecial('average', [41 41]); red_max = imfilter(red_max,w); green_max = imfilter(green_max,w); blue_max = imfilter(blue_max,w); % binarização das máscaras level_red = graythresh(red_max); level_green = graythresh(green_max); level_blue = graythresh(blue_max); red_bin = im2bw(red_max,level_red); green_bin = im2bw(green_max,level_green); blue_bin = im2bw(blue_max,level_blue); % dilatação das máscaras se = strel('disk',10); red_bin = imdilate(red_bin,se); green_bin = imdilate(green_bin,se); blue_bin = imdilate(blue_bin,se); % interpolação das máscaras em cada canal red = roifill(red,red_bin); green = roifill(green,green_bin); blue = roifill(blue,blue_bin); % concatenação das matrizes RGB numa imagem output output(:, :, 1) = red; output(:, :, 2) = green; output(:, :, 3) = blue; end

Page 66: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 67: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens

function [output_thres, output, red, green, blue] = get_contour(input) % separar em cada canal red = input(:, :, 1); green = input(:, :, 2); blue = input(:, :, 3); % edges red = edge(red,'prewitt'); green = edge(green,'prewitt'); blue = edge(blue,'prewitt'); % pixels coincidentes terão valor de intensidade = 1 output = (red+green+blue)/3; % get contour [x y] = size(output); for i = 1:x for j = 1:y if (output(i,j) == 1) output_thres(i,j) = 1; else output_thres(i,j) = 0; end end end end

Page 68: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 69: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens

function[output,threshold,histogram,valleyy,valleyx]=iterative_threshold(input,class) % filtro de histograma, média e média local input = imadjust(input); histogram = imhist(input); h = [40 1]; average = fspecial('average', h); histogram = imfilter(histogram, average); histogram = smooth(histogram, 'moving'); [valleyy valleyx] = lmin(histogram,1); if (nargin<2) % função lmin, efectuamos download diretamente do site: % (http://www.mathworks.com/matlabcentral/fileexchange/3170-local-min-max-nearest-neighbour/content/lmin.m) % retorna valores e local class = length(valleyy)+1; else class = class; end % threshold iterativo th = ones(1,class+1); % preenche vetor th com valores para o threshold de 0 a 256 for i = 2:class+1 th(i) = (256/class) * (i-1); end th = round(th); soma = zeros(1,class); n_pontos = zeros(1,class); media = zeros(1,class-1); a = 1; u = length(th)-2; w = 0; while(1) % separar o histograma para cada valor de thershold de th for j = 1:(length(th)-1) % iterar o histograma para obter valores e calcular as médias for k = th(j):((length(histogram)-(th(2)*u))) soma(j) = round(soma(j) + histogram(k)*k*0.7); n_pontos(j) = n_pontos(j) + histogram(k); end u = u-1; end u = length(th)-2;

% calcular medias baseadas nos valores de cada classe for i = 1:length(soma)-1 media(i) = round((soma(i)/n_pontos(i)) + (soma(i+1)/n_pontos(i+1))/2); end

Page 70: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens

% eliminar valor minimo 0 e maximo 256 do valor de threshold, vetor th for i = 2:length(th)-1 th_temp(i-1) = th(i); end % testa se os vetores media e th_temp são iguais % se sim para o ciclo while % caso contrário os novos valores serão atribuidos % para o calculo dos novos valores de threshold test = isequal(media,th_temp); if test == 1 break; else for i = 1:length(media) th(i+1) = media(i); end end w = w + 1; end % saida threshold = double(media/256); % valores e threshold entre [0 a 256 -> 0 a 1] output = 0; % para cada valor de threshold no valor media soma todas as imagens % com os diferente valores de threshold e divide pelo numero de elementos % do vetor media for i = 1:length(threshold) output = output + im2bw(input,threshold(i)); end output = output/length(media); end

Page 71: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens

function [output, red, green, blue] = mip(input) % separar em cada canal red = input(:, :, 1); green = input(:, :, 2); blue = input(:, :, 3); % análise do maior valor entre 3 canais R G B [x y] = size(red); for i = 1:x for j = 1:y a = max(red(i,j),green(i,j)); b = max(green(i,j),blue(i,j)); c = max(a,b); if (c > 1.10*red(i,j)) red(i,j) = 0; end if (c > 1.10*green(i,j)) green(i,j) = 0; end if (c > 1.10*blue(i,j)) blue(i,j) = 0; end end end % concatenação das matrizes RGB numa imagem output output(:, :, 1) = red; output(:, :, 2) = green; output(:, :, 3) = blue; end

Page 72: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens
Page 73: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens

function [output] = hybrid_watershed(input) % leitura, conversão para grayscale e inversão input = rgb2gray(input); input = 1-input; % cálculo do gradiente com sobel hor = fspecial('sobel'); ver = hor'; outhor = imfilter(input, hor,'replicate'); outver = imfilter(input, ver,'replicate'); outputmag1 = sqrt(outhor.^2 + outver.^2); % erosão, reconstrução, dilatação e nova reconstrução % operações morfológias para definir objetos se = strel('disk', 10); Ie = imerode(input, se); Iobr = imreconstruct(Ie, input); Iobrd = imdilate(Iobr, se); Iobrcbr = imreconstruct(imcomplement(Iobrd), imcomplement(Iobr)); Iobrcbr = imcomplement(Iobrcbr); fgm = imregionalmax(Iobrcbr); % cálculo das distâncias bw = fgm; D = bwdist(bw); DL = watershed(D); bgm = DL == 0; outputmag2 = imimposemin(outputmag1, bgm | fgm); % saida L = watershed(outputmag2); Lrgb = label2rgb(L, 'jet', 'w', 'shuffle'); figure, imshow(input), hold on image = imshow(Lrgb); set(image, 'AlphaData', 0.3), hold off; output = Lrgb; end

Page 74: Regras Para a Elaboração do Relatório de Seminário/Estágio ...tavares/downloads/publications/relatorios/TP... · % para cada valor de threshold no valor media soma todas as imagens