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 LogicNot_Click(object sender, EventArgs e) { var count2 = count; for (int k = 0; k < count2; k++) { Imagem imagem = new Imagem(); imagem.Clone(imagens[k]); imagem.LogicOp(LogicOperationType.not, null); Visualizar(imagem, "NOT " + imagem.NomeArquivo()); } }
private void LogicSub_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.LogicOp(LogicOperationType.sub, imagens[k]); } Visualizar(imagem, "SUB"); }