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 AcertoEErro_Click(object sender, EventArgs e) { Imagem A = new Imagem(); Imagem Ac = new Imagem(); A.Clone(imagens[count - 1]); Ac.Clone(A); Ac.LogicOp(LogicOperationType.not, null); Imagem B = GetImagemB(); B.ToInt(); Visualizar(B); Imagem B1 = new Imagem(); Imagem B2 = new Imagem(); B1.Clone(B); B2.Clone(B); B2.AddBorder(1, 1, 0); B2.LogicOp(LogicOperationType.not, null); A.Erosao(ElEst.quadrado, 1, 1, B1); Ac.Erosao(ElEst.quadrado, 1, 1, B2); A.LogicOp(LogicOperationType.and, Ac); A.Dilatacao(ElEst.quadrado, 1, 1, null); Visualizar(A); //W.MathOp(MathOperationType.subtracao, B, 1); //Visualizar(B, "Teste"); //A.Dilatacao(ElEst.quadrado, 1, 1, null); //A.CorrecaoMinMax(Correcao.limiar); //Visualizar(A, "Dilatação " + A.NomeArquivo()); }
private void Erosao_Click(object sender, EventArgs e) { Imagem B = new Imagem(); B.Clone(imagens[count - 1]); B.Erosao(ElEst.quadrado, 1, 1, null); Visualizar(B, "Erosão " + B.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 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()); }