private void Smoothing_Click(object sender, EventArgs e) { Imagem erod = new Imagem(); erod.Clone(imagens[count - 1]); erod.ErosaoCinza(ElEst.quadradoCinza, 1, 1); Visualizar(erod, "Erosão " + erod.NomeArquivo()); Imagem dil = new Imagem(); dil.Clone(imagens[count - 1]); dil.DilatacaoCinza(ElEst.quadradoCinza, 1, 1); dil.CorrecaoMinMax(Correcao.proporcao); Visualizar(dil, "Abertura " + dil.NomeArquivo()); Imagem dil2 = new Imagem(); dil2.Clone(imagens[count - 1]); dil2.DilatacaoCinza(ElEst.quadradoCinza, 1, 1); dil2.CorrecaoMinMax(Correcao.proporcao); Visualizar(dil2, "Dilatação " + dil2.NomeArquivo()); Imagem erod2 = new Imagem(); erod2.Clone(imagens[count - 1]); erod2.ErosaoCinza(ElEst.quadradoCinza, 1, 1); Visualizar(erod2, "Fechamento -> Smoothing" + erod2.NomeArquivo()); }
private void Esqueleto_Click(object sender, EventArgs e) { Imagem process = new Imagem(); Imagem entrada = new Imagem(); Imagem op = new Imagem(); Imagem saida = new Imagem(); saida.CreatePlainImage(imagens[count - 1].MatrizCor.Width, imagens[count - 1].MatrizCor.Height, 0); process.Clone(imagens[count - 1]); //armazena a saida entrada.Clone(imagens[count - 1]); //armazena a entrada erodida op.Clone(imagens[count - 1]); //Imagem que sofre abertura while (!entrada.IsNull()) { op.Erosao(ElEst.quadrado, 1, 1, null); op.Dilatacao(ElEst.quadrado, 1, 1, null); process.MathOp(MathOperationType.subtracao, op); saida.LogicOp(LogicOperationType.or, process); entrada.Erosao(ElEst.quadrado, 3, 3, null); process.Clone(entrada); op.Clone(entrada); } Imagem combo = new Imagem(); combo.Clone(imagens[count - 1]); Visualizar(saida, "Esqueletização " + saida.NomeArquivo()); combo.MathOp(MathOperationType.subtracao, saida); combo.CorrecaoMinMax(Correcao.limiar); Visualizar(combo, "Esqueletização " + saida.NomeArquivo()); }
private void wavefrontToolStripMenuItem_Click(object sender, EventArgs e) { Imagem B = new Imagem(); B.Clone(imagens[count - 1]); B.Wavefront(); B.CorrecaoMinMax(Correcao.proporcao); Visualizar(B, "Erosão " + B.NomeArquivo()); }
private void DilatacaoCinza_Click(object sender, EventArgs e) { Imagem B = new Imagem(); B.Clone(imagens[count - 1]); B.DilatacaoCinza(ElEst.quadradoCinza, 1, 1); B.CorrecaoMinMax(Correcao.proporcao); Visualizar(B, "Erosão " + B.NomeArquivo()); }
private void Gradiente_Click(object sender, EventArgs e) { Imagem dil = new Imagem(); Imagem erod = new Imagem(); erod.Clone(imagens[count - 1]); dil.Clone(imagens[count - 1]); dil.DilatacaoCinza(ElEst.quadradoCinza, 1, 1); dil.CorrecaoMinMax(Correcao.proporcao); Visualizar(dil, "Dilatação " + dil.NomeArquivo()); erod.ErosaoCinza(ElEst.quadradoCinza, 1, 1); erod.CorrecaoMinMax(Correcao.proporcao); Visualizar(erod, "Erosão " + erod.NomeArquivo()); dil.MathOp(MathOperationType.subtracao, erod); dil.CorrecaoMinMax(Correcao.proporcao); Visualizar(dil, "Gradiente " + dil.NomeArquivo()); }
private void StNegativo_Click(object sender, EventArgs e) { Stretching stretching = new Stretching(); Imagem imagem = new Imagem(); imagem.Clone(imagens[count - 1]); if (stretching.ShowDialog() == DialogResult.OK) { imagem.Stretching(StretchingType.neg, stretching.A, stretching.B); if (stretching.correcaoProporcional) { imagem.CorrecaoMinMax(Correcao.proporcao); } else { imagem.CorrecaoMinMax(Correcao.limiar); } Visualizar(imagem, "Stretching Linear [-" + stretching.A + "X - " + stretching.B + "] " + imagem.NomeArquivo()); } }
private void Fechamento_Click(object sender, EventArgs e) { Imagem dil = new Imagem(); dil.Clone(imagens[count - 1]); dil.Dilatacao(ElEst.quadrado, 1, 1, null); dil.CorrecaoMinMax(Correcao.limiar); Visualizar(dil, "Dilatação " + dil.NomeArquivo()); Imagem erod = new Imagem(); erod.Clone(imagens[count - 1]); erod.Erosao(ElEst.quadrado, 1, 1, null); Visualizar(erod, "Fechamento " + erod.NomeArquivo()); }
private void BordaExterna_Click(object sender, EventArgs e) { Imagem dil = new Imagem(); dil.Clone(imagens[count - 1]); dil.Dilatacao(ElEst.quadrado, 1, 1, null); Visualizar(dil, "Dilatação " + dil.NomeArquivo()); Imagem borda = new Imagem(); borda.Clone(imagens[count - 1]); borda.MathOp(MathOperationType.subtracao, imagens[count - 2]); borda.CorrecaoMinMax(Correcao.limiar); Visualizar(borda, "Borda Externa " + borda.NomeArquivo()); }
private void BordaInterna_Click(object sender, EventArgs e) { Imagem erod = new Imagem(); erod.Clone(imagens[count - 1]); erod.Erosao(ElEst.quadrado, 1, 1, null); Visualizar(erod, "Erosão " + erod.NomeArquivo()); Imagem borda = new Imagem(); borda.Clone(imagens[count - 2]); borda.MathOp(MathOperationType.subtracao, imagens[count - 1]); borda.CorrecaoMinMax(Correcao.limiar); Visualizar(borda, "Borda Interna " + borda.NomeArquivo()); }
private void Divisao_Click(object sender, EventArgs e) { Imagem imagem = new Imagem(); imagem.Clone(imagens[0]); if (count == 1) { Visualizar(GetImagemB()); } for (int k = 1; k < count; k++) { imagem.MathOp(MathOperationType.divisao, imagens[k]); } imagem.CorrecaoMinMax(Correcao.proporcao); Visualizar(imagem, "Divisão"); }
private void SubtracaoMedia_Click(object sender, EventArgs e) { Imagem imagem = new Imagem(); imagem.Clone(imagens[0]); if (count == 1) { Visualizar(GetImagemB()); } for (int k = 1; k < count; k++) { imagem.MathOp(MathOperationType.subtracao, imagens[k]); } imagem.CorrecaoMinMax(Correcao.proporcao); Visualizar(imagem, "Subtração Corrigida"); }
private void Adicao_Click(object sender, EventArgs e) { Imagem imagem = new Imagem(); imagem.Clone(imagens[0]); if (count == 1) { Visualizar(GetImagemB()); } for (int k = 1; k < count; k++) { imagem.MathOp(MathOperationType.adicao, imagens[k]); } imagem.CorrecaoMinMax(Correcao.limiar); Visualizar(imagem, "Soma Limiar"); }