Advertisement
Guest User

Untitled

a guest
Apr 25th, 2015
233
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 104.74 KB | None | 0 0
  1. package com.pdi.processoimagem.gui;
  2.  
  3. import com.pdi.processoimagem.histograma.EqualizarHistograma;
  4. import com.pdi.processoimagem.histograma.Histograma;
  5. import com.pdi.processoimagem.imagem.ImagemPGM;
  6. import com.pdi.processoimagem.jpg.filtros.Coracao;
  7. import com.pdi.processoimagem.jpg.filtros.Cinza;
  8. import com.pdi.processoimagem.jpg.filtros.Desenho;
  9. import com.pdi.processoimagem.jpg.filtros.EfeitoRed;
  10. import com.pdi.processoimagem.jpg.filtros.Moldura;
  11. import com.pdi.processoimagem.jpg.filtros.Negativo;
  12. import com.pdi.processoimagem.jpg.filtros.Sepia;
  13. import com.pdi.processoimagem.jpg.filtros.TresCores;
  14. import com.pdi.processoimagem.operacao.Funcao;
  15. import com.pdi.processoimagem.operacao.OperacaoMatematica;
  16. import java.awt.Image;
  17. import java.awt.event.ActionEvent;
  18. import java.awt.image.BufferedImage;
  19. import java.io.File;
  20. import java.io.FileNotFoundException;
  21. import java.io.FileOutputStream;
  22. import java.io.IOException;
  23. import java.io.OutputStream;
  24. import java.util.ArrayList;
  25. import javax.imageio.ImageIO;
  26. import javax.swing.GroupLayout;
  27. import javax.swing.JDesktopPane;
  28. import javax.swing.JFileChooser;
  29. import javax.swing.JFrame;
  30. import javax.swing.JMenu;
  31. import javax.swing.JMenuBar;
  32. import javax.swing.JMenuItem;
  33. import javax.swing.JOptionPane;
  34. import javax.swing.JSeparator;
  35. import javax.swing.filechooser.FileNameExtensionFilter;
  36. import org.jfree.chart.ChartUtilities;
  37. import pdi.com.processoimagem.filtros.Bordas;
  38. import pdi.com.processoimagem.filtros.DeteccaodeBordas;
  39. import pdi.com.processoimagem.filtros.DeteccaodePontos;
  40. import pdi.com.processoimagem.filtros.ErroDifusao;
  41. import pdi.com.processoimagem.filtros.Limiarizacao;
  42. import pdi.com.processoimagem.filtros.Passaalta;
  43. import pdi.com.processoimagem.filtros.Passabaixas;
  44. import pdi.com.processoimagem.filtros.PontilhadoOrdenado;
  45.  
  46. /**
  47.  *
  48.  * @author Gelson
  49.  */
  50. public class MainGui extends JFrame {
  51.  
  52.     private JFileChooser choose;
  53.     private JDesktopPane desktopane;
  54.     private OperacaoMatematica operacaomat;
  55.     private Funcao operacaofuncao;
  56.     private Passabaixas passabaixas;
  57.     private Passaalta passaaltas;
  58.     private Bordas preservaborda;
  59.     private ArrayList<FrameImagem> listaimagens;
  60.     private FrameImagem imagemresultado;
  61.     private JMenuBar menubar;
  62.     private JMenu arquivo;
  63.     private JMenu ajuda;
  64.     private JMenu useimagem;
  65.     private JMenu histograma;
  66.     private JMenu operacao;
  67.     private JMenu operacaologica;
  68.     private JMenu operacaoaritimetica;
  69.     private JMenu funcao;
  70.     private JMenu filtro;
  71.     private JMenuItem sobre;
  72.     private JMenuItem abrir;
  73.     private JMenuItem sair;
  74.     private JMenuItem somar;
  75.     private JMenuItem subtrair;
  76.     private JMenuItem multiplicar;
  77.     private JMenuItem dividir;
  78.     private JMenuItem or;
  79.     private JMenuItem and;
  80.     private JMenuItem xor;
  81.     private JMenuItem not;
  82.     private JMenuItem doisbit;
  83.     private JMenuItem linear;
  84.     private JMenuItem raiz;
  85.     private JMenuItem exponencial;
  86.     private JMenuItem logaritima;
  87.     private JMenuItem quadrada;
  88.     private JMenu passabaixa;
  89.     private JMenuItem gerarhistograma;
  90.     private JMenuItem useresultado;
  91.     private JMenu media;
  92.     private JMenu moda;
  93.     private JMenu mediana;
  94.     private JMenuItem mediah1;
  95.     private JMenuItem modah1;
  96.     private JMenuItem medianah1;
  97.     private JMenuItem mediah2;
  98.     private JMenuItem modah2;
  99.     private JMenuItem medianah2;
  100.     private JMenuItem usesegunda;
  101.     private JMenu meioton;
  102.     private JMenu pontilhado;
  103.     private JMenuItem pont2x2;
  104.     private JMenuItem pont3x3;
  105.     private JMenuItem pont2x3;
  106.     private JMenuItem floyd;
  107.     private JMenuItem rogers;
  108.     private JMenuItem jarvis;
  109.     private JMenuItem stucki;
  110.     private JMenuItem stenveson;
  111.     private JMenu maximo;
  112.     private JMenu minimo;
  113.     private JMenuItem maximo3x3;
  114.     private JMenuItem maximo5x5;
  115.     private JMenuItem minimo3x3;
  116.     private JMenuItem minimo5x5;
  117.     private JMenuItem primeiraAlta;
  118.     private JMenuItem segundaAlta;
  119.     private JMenuItem terceiraAlta;
  120.     private JMenuItem quartaAlta;
  121.     private JMenuItem quintaAlta;
  122.     private JMenuItem primeiraBorda;
  123.     private JMenuItem segundaBorda;
  124.     private JMenuItem terceiraBorda;
  125.     private JMenuItem quartaBorda;
  126.     private JMenu passaalta;
  127.     private JMenu preservacaoborda;
  128.     private JMenu deteccaoPontoRetas;
  129.     private JMenuItem ponto;
  130.     private JMenuItem retah1;
  131.     private JMenuItem retah2;
  132.     private JMenuItem retah3;
  133.     private JMenuItem retah4;
  134.     private JMenu dectecaobordas;
  135.     private JMenuItem roberts;
  136.     private JMenuItem robertscruzado;
  137.     private JMenuItem prewitt;
  138.     private JMenuItem prewittgx;
  139.     private JMenuItem prewittgy;
  140.     private JMenuItem sobel;
  141.     private JMenuItem sobelgx;
  142.     private JMenuItem sobelgy;
  143.     private JMenuItem kirsh;
  144.     private JMenuItem robison;
  145.     private JMenu laplaciano;
  146.     private JMenuItem laplacianoh1;
  147.     private JMenuItem laplacianoh2;
  148.     private JMenuItem freychen;
  149.     private JMenuItem equalizar;
  150.     private JMenuItem highboosting;
  151.     private JMenuItem gamma;
  152.     private JMenuItem limiar;
  153.     private JMenuItem limiarmedia;
  154.     private JMenuItem limiarmediana;
  155.     private JMenuItem limarmax;
  156.     private JMenuItem niblack;
  157.     private JMenuItem abrirJ;
  158.     private JFileChooser chooseJ;
  159.     private Image imagem;
  160.     private Image resultado;
  161.     private JMenu filtrosJPG;
  162.     private JMenuItem sepia;
  163.     private JMenuItem negativo;
  164.     private JMenuItem cinza;
  165.     private JMenuItem desenho;
  166.     private JMenuItem trescores;
  167.     private JMenuItem trescores2;
  168.     private JMenuItem moldura;
  169.     private JMenuItem bolinhas;
  170.     private JMenuItem usarJPG;
  171.     private JMenuItem redefect;
  172.     //Construtor da do Frame main.
  173.     public MainGui() {
  174.         super("Processo Digital de Imagem");
  175.         listaimagens = new ArrayList();
  176.         initComponets();
  177.  
  178.     }
  179.  
  180.     //Constrói todo painel do Frame e iniciar todos os componentes
  181.     private void initComponets() {
  182.  
  183.         //Iniciando caracteristicas do Frame.
  184.         this.setSize(700, 400);
  185.         this.setLocationRelativeTo(null);
  186.         this.setDefaultCloseOperation(EXIT_ON_CLOSE);
  187.         this.setExtendedState(MAXIMIZED_BOTH);
  188.  
  189.         //Iniciando as váriaveis das classes das operações na imagem
  190.         this.operacaomat = new OperacaoMatematica();
  191.         this.operacaofuncao = new Funcao();
  192.         this.passabaixas = new Passabaixas();
  193.         this.passaaltas = new Passaalta();
  194.         this.preservaborda = new Bordas();
  195.  
  196.         //Iniciando a variável do choose
  197.         FileNameExtensionFilter filtro = new FileNameExtensionFilter("Arquivos PGM", "pgm");
  198.         this.choose = new JFileChooser();
  199.         this.choose.setFileFilter(filtro);
  200.         FileNameExtensionFilter filtroJ = new FileNameExtensionFilter("Arquivo JPG", "jpg");
  201.         this.chooseJ = new JFileChooser();
  202.         this.chooseJ.setFileFilter(filtroJ);
  203.  
  204.         //Inicializando DesktopPane e o adicionando no Frame
  205.         this.desktopane = new JDesktopPane();
  206.         this.add(desktopane);
  207.  
  208.         //Configurando Layout do frame.
  209.         GroupLayout layout = new GroupLayout(this.getContentPane());
  210.         setLayout(layout);
  211.  
  212.         //Inicializando o MenuBar e seus componentes .
  213.         this.abrirJ = new JMenuItem("Abrir imagem JPEG");
  214.         this.menubar = new JMenuBar();
  215.         this.arquivo = new JMenu("Arquivos");
  216.         this.ajuda = new JMenu("Ajuda");
  217.         this.operacao = new JMenu("Operações");
  218.         this.operacaoaritimetica = new JMenu("Aritmética");
  219.         this.operacaologica = new JMenu("Lógica");
  220.         this.funcao = new JMenu("Funções");
  221.         this.histograma = new JMenu("Histograma");
  222.         this.abrir = new JMenuItem("Abrir");
  223.         this.sair = new JMenuItem("Sair");
  224.         this.useimagem = new JMenu("Usar Imagem");
  225.         this.filtro = new JMenu("Filtros");
  226.         this.passabaixa = new JMenu("Passa baixa");
  227.         this.sobre = new JMenuItem("Sobre");
  228.         this.somar = new JMenuItem("Somar");
  229.         this.subtrair = new JMenuItem("Subtrair");
  230.         this.multiplicar = new JMenuItem("Multiplicar");
  231.         this.dividir = new JMenuItem("Dividir");
  232.         this.or = new JMenuItem("Or");
  233.         this.and = new JMenuItem("And");
  234.         this.xor = new JMenuItem("Xor");
  235.         this.not = new JMenuItem("Not");
  236.         this.linear = new JMenuItem("Linear");
  237.         this.raiz = new JMenuItem("Raiz");
  238.         this.doisbit = new JMenuItem("2 bit");
  239.         this.quadrada = new JMenuItem("Quadrada");
  240.         this.exponencial = new JMenuItem("Exponêncial");
  241.         this.logaritima = new JMenuItem("Logaritma");
  242.         this.gerarhistograma = new JMenuItem("Gerar Histograma");
  243.         this.mediah1 = new JMenuItem("3x3");
  244.         this.modah1 = new JMenuItem("3x3");
  245.         this.medianah1 = new JMenuItem("3x3");
  246.         this.mediah2 = new JMenuItem("5x5");
  247.         this.modah2 = new JMenuItem("5x5");
  248.         this.medianah2 = new JMenuItem("5x5");
  249.         this.media = new JMenu("Media");
  250.         this.moda = new JMenu("Moda");
  251.         this.mediana = new JMenu("Mediana");
  252.         this.useresultado = new JMenuItem("Resultado");
  253.         this.usesegunda = new JMenuItem("Segunda Imagem");
  254.         this.meioton = new JMenu("Halftoning");
  255.         this.pontilhado = new JMenu("Pontilhado Ordenado");
  256.         this.pont2x2 = new JMenuItem("2x2");
  257.         this.pont3x3 = new JMenuItem("3x3");
  258.         this.pont2x3 = new JMenuItem("2x3");
  259.         this.floyd = new JMenuItem("Floyd e Steinberg");
  260.         this.rogers = new JMenuItem("Rogers");
  261.         this.jarvis = new JMenuItem("Jarvis, Judice & Ninke");
  262.         this.stucki = new JMenuItem("Stucki");
  263.         this.stenveson = new JMenuItem("Stevenson e Arce");
  264.         this.maximo = new JMenu("Máximo");
  265.         this.minimo = new JMenu("Minimo");
  266.         this.maximo3x3 = new JMenuItem("3x3");
  267.         this.maximo5x5 = new JMenuItem("5x5");
  268.         this.minimo3x3 = new JMenuItem("3x3");
  269.         this.minimo5x5 = new JMenuItem("5x5");
  270.         this.primeiraAlta = new JMenuItem("H1");
  271.         this.segundaAlta = new JMenuItem("H2");
  272.         this.terceiraAlta = new JMenuItem("M1");
  273.         this.quartaAlta = new JMenuItem("M2");
  274.         this.quintaAlta = new JMenuItem("M3");
  275.         this.primeiraBorda = new JMenuItem("Kawahra");
  276.         this.segundaBorda = new JMenuItem("Tomita e Tsuji");
  277.         this.terceiraBorda = new JMenuItem("Nagao e Matsuyama");
  278.         this.quartaBorda = new JMenuItem("Somboonkaew");
  279.         this.useresultado = new JMenuItem("Resultado");
  280.         this.usesegunda = new JMenuItem("Segunda Imagem");
  281.         this.passaalta = new JMenu("Passa-Altas");
  282.         this.preservacaoborda = new JMenu("Preservação de Bordas");
  283.         this.deteccaoPontoRetas = new JMenu("Detecção de Pontos e Retas");
  284.         this.ponto = new JMenuItem("Ponto");
  285.         this.retah1 = new JMenuItem("Retas Orizontais");
  286.         this.retah2 = new JMenuItem("Retas 45 graus");
  287.         this.retah3 = new JMenuItem("Retas Verticais");
  288.         this.retah4 = new JMenuItem("Retas 135 graus");
  289.         this.dectecaobordas = new JMenu("Detecção de Bordas");
  290.         this.roberts = new JMenuItem("Roberts");
  291.         this.robertscruzado = new JMenuItem("Roberts Cruzado");
  292.         this.prewitt = new JMenuItem("Prewitt");
  293.         this.prewittgx = new JMenuItem("Prewitt Gx");
  294.         this.prewittgy = new JMenuItem("Prewitt Gy");
  295.         this.sobel = new JMenuItem("Sobel");
  296.         this.sobelgx = new JMenuItem("Sobel Gx");
  297.         this.sobelgy = new JMenuItem("Sobel Gy");
  298.         this.kirsh = new JMenuItem("Kirsh");
  299.         this.robison = new JMenuItem("Robison");
  300.         this.laplaciano = new JMenu("Laplaciano");
  301.         this.laplacianoh1 = new JMenuItem("h1");
  302.         this.laplacianoh2 = new JMenuItem("h2");
  303.         this.freychen = new JMenuItem("Frey-Chen");
  304.         this.equalizar = new JMenuItem("Equalizar");
  305.         this.highboosting = new JMenuItem("High-Boosting");
  306.         this.gamma = new JMenuItem("Gama");
  307.         this.limiar = new JMenu("Limiarização");
  308.         this.limiarmedia = new JMenuItem("Media");
  309.         this.limiarmediana = new JMenuItem("Mediana");
  310.         this.limarmax = new JMenuItem("Max-Min");
  311.         this.niblack = new JMenuItem("NiBlack");
  312.         this.filtrosJPG = new JMenu("Filtros JPG");
  313.         this.sepia = new JMenuItem("Sepia");
  314.         this.negativo = new JMenuItem("Negativo");
  315.         this.cinza = new JMenuItem("Cinza");
  316.         this.desenho = new JMenuItem("Desenho");
  317.         this.trescores = new JMenuItem("Três Cores");
  318.         this.trescores2 = new JMenuItem("Color Center");
  319.         this.moldura = new JMenuItem("Moldura");
  320.         this.usarJPG = new JMenuItem("Resultado JPG");
  321.         this.bolinhas = new JMenuItem("Coração");
  322.         this.redefect = new JMenuItem("Red Effect");
  323.  
  324.         //Adicionando ouvinte nos JMenuItem
  325.         this.abrir.addActionListener(new java.awt.event.ActionListener() {
  326.  
  327.             @Override
  328.             public void actionPerformed(ActionEvent e) {
  329.                 clickAbrir(e);
  330.             }
  331.         });
  332.         this.sair.addActionListener(new java.awt.event.ActionListener() {
  333.  
  334.             @Override
  335.             public void actionPerformed(ActionEvent e) {
  336.                 clickSair(e);
  337.             }
  338.         });
  339.         this.useresultado.addActionListener(new java.awt.event.ActionListener() {
  340.             @Override
  341.             public void actionPerformed(ActionEvent e) {
  342.                 clickUseresultado(e);
  343.             }
  344.         });
  345.         this.sobre.addActionListener(new java.awt.event.ActionListener() {
  346.             @Override
  347.             public void actionPerformed(ActionEvent e) {
  348.                 clickSobre(e);
  349.             }
  350.         });
  351.         this.somar.addActionListener(new java.awt.event.ActionListener() {
  352.  
  353.             @Override
  354.             public void actionPerformed(ActionEvent e) {
  355.                 clickSoma(e);
  356.             }
  357.         });
  358.  
  359.         this.subtrair.addActionListener(new java.awt.event.ActionListener() {
  360.  
  361.             @Override
  362.             public void actionPerformed(ActionEvent e) {
  363.                 clickSubtracao(e);
  364.             }
  365.         });
  366.         this.multiplicar.addActionListener(new java.awt.event.ActionListener() {
  367.  
  368.             @Override
  369.             public void actionPerformed(ActionEvent e) {
  370.                 clickMultplicacao(e);
  371.             }
  372.         });
  373.  
  374.         this.dividir.addActionListener(new java.awt.event.ActionListener() {
  375.  
  376.             @Override
  377.             public void actionPerformed(ActionEvent e) {
  378.                 clickDivisao(e);
  379.             }
  380.         });
  381.  
  382.         this.or.addActionListener(new java.awt.event.ActionListener() {
  383.  
  384.             @Override
  385.             public void actionPerformed(ActionEvent e) {
  386.                 clickOr(e);
  387.             }
  388.         });
  389.  
  390.         this.and.addActionListener(new java.awt.event.ActionListener() {
  391.  
  392.             @Override
  393.             public void actionPerformed(ActionEvent e) {
  394.                 clickAnd(e);
  395.             }
  396.         });
  397.         this.xor.addActionListener(new java.awt.event.ActionListener() {
  398.  
  399.             @Override
  400.             public void actionPerformed(ActionEvent e) {
  401.                 clickXor(e);
  402.             }
  403.         });
  404.         this.not.addActionListener(new java.awt.event.ActionListener() {
  405.  
  406.             @Override
  407.             public void actionPerformed(ActionEvent e) {
  408.                 clickNot(e);
  409.             }
  410.         });
  411.  
  412.         this.doisbit.addActionListener(new java.awt.event.ActionListener() {
  413.  
  414.             @Override
  415.             public void actionPerformed(ActionEvent e) {
  416.                 clickDoisBit(e);
  417.             }
  418.         });
  419.  
  420.         this.linear.addActionListener(new java.awt.event.ActionListener() {
  421.  
  422.             @Override
  423.             public void actionPerformed(ActionEvent e) {
  424.                 String varA = JOptionPane.showInputDialog(null, "Digite o valor A da função (0 - 255): AF+B");
  425.                 if (varA == null) {
  426.                     System.out.println("Cancelou");
  427.                 } else if (varA.equals("")) {
  428.                     System.out.println("Vazio");
  429.                 }
  430.                 String varB = JOptionPane.showInputDialog(null, "Digite o valor B da função (0 - 255): AF+B");
  431.                 if (varB == null) {
  432.                     System.out.println("Cancelou");
  433.                 } else if (varB.equals("")) {
  434.                     System.out.println("Vazio");
  435.                 } else {
  436.                     System.out.println(varB);
  437.                 }
  438.                 clickFuncaoLinear(e, varA, varB);
  439.             }
  440.  
  441.         });
  442.         this.raiz.addActionListener(new java.awt.event.ActionListener() {
  443.  
  444.             @Override
  445.             public void actionPerformed(ActionEvent e) {
  446.                 clickRaizQuadrada(e);
  447.             }
  448.         });
  449.  
  450.         this.quadrada.addActionListener(new java.awt.event.ActionListener() {
  451.  
  452.             @Override
  453.             public void actionPerformed(ActionEvent e) {
  454.                 clickQuadrada(e);
  455.             }
  456.         });
  457.         this.exponencial.addActionListener(new java.awt.event.ActionListener() {
  458.  
  459.             @Override
  460.             public void actionPerformed(ActionEvent e) {
  461.                 clickExponencial(e);
  462.             }
  463.         });
  464.         this.logaritima.addActionListener(new java.awt.event.ActionListener() {
  465.  
  466.             @Override
  467.             public void actionPerformed(ActionEvent e) {
  468.                 clickLogaritomo(e);
  469.             }
  470.         });
  471.         this.gerarhistograma.addActionListener(new java.awt.event.ActionListener() {
  472.  
  473.             @Override
  474.             public void actionPerformed(ActionEvent e) {
  475.                 clickGerarHistograma(e);
  476.             }
  477.         });
  478.         this.mediah1.addActionListener(new java.awt.event.ActionListener() {
  479.  
  480.             @Override
  481.             public void actionPerformed(ActionEvent e) {
  482.                 clickMediah1(e);
  483.             }
  484.         });
  485.         this.mediah2.addActionListener(new java.awt.event.ActionListener() {
  486.  
  487.             @Override
  488.             public void actionPerformed(ActionEvent e) {
  489.                 clickMediah2(e);
  490.             }
  491.         });
  492.         this.modah1.addActionListener(new java.awt.event.ActionListener() {
  493.  
  494.             @Override
  495.             public void actionPerformed(ActionEvent e) {
  496.                 clickModah1(e);
  497.             }
  498.         });
  499.         this.modah2.addActionListener(new java.awt.event.ActionListener() {
  500.  
  501.             @Override
  502.             public void actionPerformed(ActionEvent e) {
  503.                 clickModah2(e);
  504.             }
  505.         });
  506.         this.medianah1.addActionListener(new java.awt.event.ActionListener() {
  507.  
  508.             @Override
  509.             public void actionPerformed(ActionEvent e) {
  510.                 clickMedianah1(e);
  511.             }
  512.         });
  513.         this.medianah2.addActionListener(new java.awt.event.ActionListener() {
  514.  
  515.             @Override
  516.             public void actionPerformed(ActionEvent e) {
  517.                 clickMedianah2(e);
  518.             }
  519.         });
  520.         this.usesegunda.addActionListener(new java.awt.event.ActionListener() {
  521.  
  522.             @Override
  523.             public void actionPerformed(ActionEvent e) {
  524.                 clickUsesegunda(e);
  525.             }
  526.         });
  527.  
  528.         this.pont2x2.addActionListener(new java.awt.event.ActionListener() {
  529.  
  530.             @Override
  531.             public void actionPerformed(ActionEvent e) {
  532.                 clickPont2x2(e);
  533.             }
  534.         });
  535.         this.pont3x3.addActionListener(new java.awt.event.ActionListener() {
  536.  
  537.             @Override
  538.             public void actionPerformed(ActionEvent e) {
  539.                 clickPont3x3(e);
  540.             }
  541.         });
  542.         this.pont2x3.addActionListener(new java.awt.event.ActionListener() {
  543.  
  544.             @Override
  545.             public void actionPerformed(ActionEvent e) {
  546.                 clickPont2x3(e);
  547.             }
  548.         });
  549.         this.floyd.addActionListener(new java.awt.event.ActionListener() {
  550.  
  551.             @Override
  552.             public void actionPerformed(ActionEvent e) {
  553.                 clickfloyd(e);
  554.             }
  555.         });
  556.         this.rogers.addActionListener(new java.awt.event.ActionListener() {
  557.             @Override
  558.             public void actionPerformed(ActionEvent e) {
  559.                 clickrogers(e);
  560.             }
  561.         });
  562.         this.jarvis.addActionListener(new java.awt.event.ActionListener() {
  563.  
  564.             @Override
  565.             public void actionPerformed(ActionEvent e) {
  566.                 clickJarvis(e);
  567.             }
  568.         });
  569.         this.stucki.addActionListener(new java.awt.event.ActionListener() {
  570.             @Override
  571.             public void actionPerformed(ActionEvent e) {
  572.                 clickStucki(e);
  573.             }
  574.         });
  575.         this.stenveson.addActionListener(new java.awt.event.ActionListener() {
  576.             @Override
  577.             public void actionPerformed(ActionEvent e) {
  578.                 clickSteveson(e);
  579.             }
  580.         });
  581.         this.maximo3x3.addActionListener(new java.awt.event.ActionListener() {
  582.             @Override
  583.             public void actionPerformed(ActionEvent e) {
  584.                 clickMaximo3x3(e);
  585.             }
  586.         });
  587.         this.maximo5x5.addActionListener(new java.awt.event.ActionListener() {
  588.             @Override
  589.             public void actionPerformed(ActionEvent e) {
  590.                 clickMaximo5x5(e);
  591.             }
  592.         });
  593.         this.minimo3x3.addActionListener(new java.awt.event.ActionListener() {
  594.             @Override
  595.             public void actionPerformed(ActionEvent e) {
  596.                 clickMinimo3x3(e);
  597.             }
  598.         });
  599.         this.minimo5x5.addActionListener(new java.awt.event.ActionListener() {
  600.             @Override
  601.             public void actionPerformed(ActionEvent e) {
  602.                 clickMinimo5x5(e);
  603.             }
  604.         });
  605.         this.primeiraAlta.addActionListener(new java.awt.event.ActionListener() {
  606.  
  607.             @Override
  608.             public void actionPerformed(ActionEvent e) {
  609.                 clickPassaAltah1(e);
  610.             }
  611.         });
  612.         this.segundaAlta.addActionListener(new java.awt.event.ActionListener() {
  613.  
  614.             @Override
  615.             public void actionPerformed(ActionEvent e) {
  616.                 clickPassaAltah2(e);
  617.             }
  618.         });
  619.         this.terceiraAlta.addActionListener(new java.awt.event.ActionListener() {
  620.  
  621.             @Override
  622.             public void actionPerformed(ActionEvent e) {
  623.                 clickPassaAltam1(e);
  624.             }
  625.         });
  626.         this.quartaAlta.addActionListener(new java.awt.event.ActionListener() {
  627.  
  628.             @Override
  629.             public void actionPerformed(ActionEvent e) {
  630.                 clickPassaAltam2(e);
  631.             }
  632.         });
  633.         this.quintaAlta.addActionListener(new java.awt.event.ActionListener() {
  634.  
  635.             @Override
  636.             public void actionPerformed(ActionEvent e) {
  637.                 clickPassaAltam3(e);
  638.             }
  639.         });
  640.         this.primeiraBorda.addActionListener(new java.awt.event.ActionListener() {
  641.  
  642.             @Override
  643.             public void actionPerformed(ActionEvent e) {
  644.                 clickPreserveBorda1(e);
  645.             }
  646.         });
  647.         this.segundaBorda.addActionListener(new java.awt.event.ActionListener() {
  648.  
  649.             @Override
  650.             public void actionPerformed(ActionEvent e) {
  651.                 clickPreserveBorda2(e);
  652.             }
  653.         });
  654.         this.terceiraBorda.addActionListener(new java.awt.event.ActionListener() {
  655.  
  656.             @Override
  657.             public void actionPerformed(ActionEvent e) {
  658.                 clickPreserveBorda3(e);
  659.             }
  660.         });
  661.         this.quartaBorda.addActionListener(new java.awt.event.ActionListener() {
  662.  
  663.             @Override
  664.             public void actionPerformed(ActionEvent e) {
  665.                 clickPreserveBorda4(e);
  666.             }
  667.         });
  668.         this.ponto.addActionListener(new java.awt.event.ActionListener() {
  669.  
  670.             @Override
  671.             public void actionPerformed(ActionEvent e) {
  672.                 clickPonto(e);
  673.             }
  674.         });
  675.         this.retah1.addActionListener(new java.awt.event.ActionListener() {
  676.  
  677.             @Override
  678.             public void actionPerformed(ActionEvent e) {
  679.                 cliclkRetah1(e);
  680.             }
  681.         });
  682.         this.retah2.addActionListener(new java.awt.event.ActionListener() {
  683.  
  684.             @Override
  685.             public void actionPerformed(ActionEvent e) {
  686.                 cliclkRetah2(e);
  687.             }
  688.         });
  689.         this.retah3.addActionListener(new java.awt.event.ActionListener() {
  690.  
  691.             @Override
  692.             public void actionPerformed(ActionEvent e) {
  693.                 cliclkRetah3(e);
  694.             }
  695.         });
  696.         this.retah4.addActionListener(new java.awt.event.ActionListener() {
  697.  
  698.             @Override
  699.             public void actionPerformed(ActionEvent e) {
  700.                 cliclkRetah4(e);
  701.             }
  702.         });
  703.         this.roberts.addActionListener(new java.awt.event.ActionListener() {
  704.  
  705.             @Override
  706.             public void actionPerformed(ActionEvent e) {
  707.                 clickRoberts(e);
  708.             }
  709.         });
  710.         this.robertscruzado.addActionListener(new java.awt.event.ActionListener() {
  711.  
  712.             @Override
  713.             public void actionPerformed(ActionEvent e) {
  714.                 clickRobertsCruzado(e);
  715.             }
  716.         });
  717.         this.prewitt.addActionListener(new java.awt.event.ActionListener() {
  718.  
  719.             @Override
  720.             public void actionPerformed(ActionEvent e) {
  721.                 clickPrewitt(e);
  722.             }
  723.         });
  724.         this.prewittgx.addActionListener(new java.awt.event.ActionListener() {
  725.  
  726.             @Override
  727.             public void actionPerformed(ActionEvent e) {
  728.                 clickPrewittGx(e);
  729.             }
  730.         });
  731.         this.prewittgy.addActionListener(new java.awt.event.ActionListener() {
  732.  
  733.             @Override
  734.             public void actionPerformed(ActionEvent e) {
  735.                 clickPrewittGy(e);
  736.             }
  737.         });
  738.         this.sobel.addActionListener(new java.awt.event.ActionListener() {
  739.  
  740.             @Override
  741.             public void actionPerformed(ActionEvent e) {
  742.                 clickSobel(e);
  743.             }
  744.         });
  745.         this.sobelgx.addActionListener(new java.awt.event.ActionListener() {
  746.  
  747.             @Override
  748.             public void actionPerformed(ActionEvent e) {
  749.                 clickSobelGx(e);
  750.             }
  751.         });
  752.         this.sobelgy.addActionListener(new java.awt.event.ActionListener() {
  753.  
  754.             @Override
  755.             public void actionPerformed(ActionEvent e) {
  756.                 clickSobelGy(e);
  757.             }
  758.         });
  759.         this.kirsh.addActionListener(new java.awt.event.ActionListener() {
  760.  
  761.             @Override
  762.             public void actionPerformed(ActionEvent e) {
  763.                 clickKirsh(e);
  764.             }
  765.         });
  766.  
  767.         this.robison.addActionListener(new java.awt.event.ActionListener() {
  768.  
  769.             @Override
  770.             public void actionPerformed(ActionEvent e) {
  771.                 clickRobison(e);
  772.             }
  773.         });
  774.         this.laplacianoh1.addActionListener(new java.awt.event.ActionListener() {
  775.  
  776.             @Override
  777.             public void actionPerformed(ActionEvent e) {
  778.                 clickLaplacianoh1(e);
  779.             }
  780.         });
  781.         this.laplacianoh2.addActionListener(new java.awt.event.ActionListener() {
  782.  
  783.             @Override
  784.             public void actionPerformed(ActionEvent e) {
  785.                 clickLaplacianoh2(e);
  786.             }
  787.         });
  788.         this.freychen.addActionListener(new java.awt.event.ActionListener() {
  789.  
  790.             @Override
  791.             public void actionPerformed(ActionEvent e) {
  792.                 clickFreyChen(e);
  793.             }
  794.         });
  795.         this.equalizar.addActionListener(new java.awt.event.ActionListener() {
  796.  
  797.             @Override
  798.             public void actionPerformed(ActionEvent e) {
  799.                 clickEqualizar(e);
  800.             }
  801.         });
  802.         this.highboosting.addActionListener(new java.awt.event.ActionListener() {
  803.  
  804.             @Override
  805.             public void actionPerformed(ActionEvent e) {
  806.                 clickPassaAltaHighBoosting(e);
  807.             }
  808.         });
  809.         this.gamma.addActionListener(new java.awt.event.ActionListener() {
  810.  
  811.             @Override
  812.             public void actionPerformed(ActionEvent e) {
  813.                 clickGamma(e);
  814.             }
  815.         });
  816.         this.limiarmedia.addActionListener(new java.awt.event.ActionListener() {
  817.  
  818.             @Override
  819.             public void actionPerformed(ActionEvent e) {
  820.                 clickLimializacaoMedia(e);
  821.             }
  822.         });
  823.         this.limiarmediana.addActionListener(new java.awt.event.ActionListener() {
  824.  
  825.             @Override
  826.             public void actionPerformed(ActionEvent e) {
  827.                 clickLimializacaoMediana(e);
  828.             }
  829.         });
  830.         this.limarmax.addActionListener(new java.awt.event.ActionListener() {
  831.  
  832.             @Override
  833.             public void actionPerformed(ActionEvent e) {
  834.                 clickLimializacaoMaxmin(e);
  835.             }
  836.         });
  837.         this.niblack.addActionListener(new java.awt.event.ActionListener() {
  838.  
  839.             @Override
  840.             public void actionPerformed(ActionEvent e) {
  841.                 clickLimializacaoNiblack(e);
  842.             }
  843.         });
  844.         this.abrirJ.addActionListener(new java.awt.event.ActionListener() {
  845.  
  846.             @Override
  847.             public void actionPerformed(ActionEvent e) {
  848.                 clickAbrirJ(e);
  849.             }
  850.         });
  851.         this.sepia.addActionListener(new java.awt.event.ActionListener() {
  852.  
  853.             @Override
  854.             public void actionPerformed(ActionEvent e) {
  855.                 clicksepia(e);
  856.             }
  857.         });
  858.         this.negativo.addActionListener(new java.awt.event.ActionListener() {
  859.  
  860.             @Override
  861.             public void actionPerformed(ActionEvent e) {
  862.                 clickNegativo(e);
  863.             }
  864.         });
  865.  
  866.         this.cinza.addActionListener(new java.awt.event.ActionListener() {
  867.  
  868.             @Override
  869.             public void actionPerformed(ActionEvent e) {
  870.                 clickCinza(e);
  871.             }
  872.         });
  873.         this.desenho.addActionListener(new java.awt.event.ActionListener() {
  874.  
  875.             @Override
  876.             public void actionPerformed(ActionEvent e) {
  877.                 clickDesenho(e);
  878.             }
  879.         });
  880.         this.trescores.addActionListener(new java.awt.event.ActionListener() {
  881.  
  882.             @Override
  883.             public void actionPerformed(ActionEvent e) {
  884.                 clickTrimage(e);
  885.             }
  886.         });
  887.         this.trescores2.addActionListener(new java.awt.event.ActionListener() {
  888.  
  889.             @Override
  890.             public void actionPerformed(ActionEvent e) {
  891.                 clickTrimage2(e);
  892.             }
  893.         });
  894.         this.moldura.addActionListener(new java.awt.event.ActionListener() {
  895.  
  896.             @Override
  897.             public void actionPerformed(ActionEvent e) {
  898.                 clickMoldura(e);
  899.             }
  900.         });
  901.         this.moldura.addActionListener(new java.awt.event.ActionListener() {
  902.  
  903.             @Override
  904.             public void actionPerformed(ActionEvent e) {
  905.                 usarJPG(e);
  906.             }
  907.         });
  908.         this.bolinhas.addActionListener(new java.awt.event.ActionListener() {
  909.  
  910.             @Override
  911.             public void actionPerformed(ActionEvent e) {
  912.                 clickBolinhas(e);
  913.             }
  914.         });
  915.         this.redefect.addActionListener(new java.awt.event.ActionListener() {
  916.  
  917.             @Override
  918.             public void actionPerformed(ActionEvent e) {
  919.                 clickRedeFocus(e);
  920.             }
  921.         });
  922.         //Adicionando os JMenuItem e os JMenu no MenuBar.
  923.         this.operacaoaritimetica.add(this.somar);
  924.         this.operacaoaritimetica.add(this.subtrair);
  925.         this.operacaoaritimetica.add(this.multiplicar);
  926.         this.operacaoaritimetica.add(this.dividir);
  927.         //#################################################################
  928.         this.operacaologica.add(this.or);
  929.         this.operacaologica.add(this.and);
  930.         this.operacaologica.add(this.xor);
  931.         //##################################################################
  932.         this.useimagem.add(this.useresultado);
  933.         this.useimagem.add(this.usarJPG);
  934.         this.useimagem.add(this.usesegunda);
  935.         //##################################################################
  936.         this.ajuda.add(this.sobre);
  937.         //##################################################################
  938.         this.funcao.add(this.not);
  939.         this.funcao.add(this.doisbit);
  940.         this.funcao.add(this.linear);
  941.         this.funcao.add(this.raiz);
  942.         this.funcao.add(this.quadrada);
  943.         this.funcao.add(this.exponencial);
  944.         this.funcao.add(this.logaritima);
  945.         this.funcao.add(this.gamma);
  946.         this.funcao.add(this.equalizar);
  947.         //##################################################################
  948.         this.histograma.add(this.gerarhistograma);
  949.         //##################################################################
  950.         this.media.add(this.mediah1);
  951.         this.media.add(this.mediah2);
  952.         this.moda.add(this.modah1);
  953.         this.moda.add(this.modah2);
  954.         this.mediana.add(this.medianah1);
  955.         this.mediana.add(this.medianah2);
  956.         this.maximo.add(this.maximo3x3);
  957.         this.maximo.add(this.maximo5x5);
  958.         this.minimo.add(this.minimo3x3);
  959.         this.minimo.add(this.minimo5x5);
  960.         //##################################################################        
  961.         this.passabaixa.add(this.media);
  962.         this.passabaixa.add(this.moda);
  963.         this.passabaixa.add(this.mediana);
  964.         this.passabaixa.add(new JSeparator());
  965.         this.passabaixa.add(this.preservacaoborda);
  966.         this.passabaixa.add(new JSeparator());
  967.         this.passabaixa.add(this.maximo);
  968.         this.passabaixa.add(this.minimo);
  969.         this.passaalta.add(this.primeiraAlta);
  970.         this.passaalta.add(this.segundaAlta);
  971.         this.passaalta.add(this.terceiraAlta);
  972.         this.passaalta.add(this.quartaAlta);
  973.         this.passaalta.add(this.quintaAlta);
  974.         this.passaalta.add(this.highboosting);
  975.         this.preservacaoborda.add(this.primeiraBorda);
  976.         this.preservacaoborda.add(this.segundaBorda);
  977.         this.preservacaoborda.add(this.terceiraBorda);
  978.         this.preservacaoborda.add(this.quartaBorda);
  979.         //##################################################################
  980.         this.pontilhado.add(this.pont2x2);
  981.         this.pontilhado.add(this.pont2x3);
  982.         this.pontilhado.add(this.pont3x3);
  983.         this.meioton.add(this.pontilhado);
  984.         this.meioton.add(new JSeparator());
  985.         this.meioton.add(this.floyd);
  986.         this.meioton.add(this.rogers);
  987.         this.meioton.add(this.jarvis);
  988.         this.meioton.add(this.stucki);
  989.         this.meioton.add(this.stenveson);
  990.         //##################################################################
  991.         this.deteccaoPontoRetas.add(this.ponto);
  992.         this.deteccaoPontoRetas.add(this.retah1);
  993.         this.deteccaoPontoRetas.add(this.retah2);
  994.         this.deteccaoPontoRetas.add(this.retah3);
  995.         this.deteccaoPontoRetas.add(this.retah4);
  996.         //##################################################################
  997.         this.laplaciano.add(this.laplacianoh1);
  998.         this.laplaciano.add(this.laplacianoh2);
  999.         //##################################################################
  1000.         this.dectecaobordas.add(this.roberts);
  1001.         this.dectecaobordas.add(this.robertscruzado);
  1002.         this.dectecaobordas.add(this.prewitt);
  1003.         this.dectecaobordas.add(this.prewittgx);
  1004.         this.dectecaobordas.add(this.prewittgy);
  1005.         this.dectecaobordas.add(this.sobel);
  1006.         this.dectecaobordas.add(this.sobelgx);
  1007.         this.dectecaobordas.add(this.sobelgy);
  1008.         this.dectecaobordas.add(this.kirsh);
  1009.         this.dectecaobordas.add(this.robison);
  1010.         this.dectecaobordas.add(this.freychen);
  1011.         this.dectecaobordas.add(this.laplaciano);
  1012.         //##################################################################
  1013.         this.limiar.add(this.limiarmedia);
  1014.         this.limiar.add(this.limiarmediana);
  1015.         this.limiar.add(this.limarmax);
  1016.         this.limiar.add(this.niblack);
  1017.         //##################################################################
  1018.         this.filtro.add(this.passabaixa);
  1019.         this.filtro.add(this.passaalta);
  1020.         this.filtro.add(this.meioton);
  1021.         this.filtro.add(this.deteccaoPontoRetas);
  1022.         this.filtro.add(this.dectecaobordas);
  1023.         this.filtro.add(this.limiar);
  1024.         //##################################################################
  1025.         this.filtrosJPG.add(this.sepia);
  1026.         this.filtrosJPG.add(this.negativo);
  1027.         this.filtrosJPG.add(this.cinza);
  1028.         this.filtrosJPG.add(this.desenho);
  1029.         this.filtrosJPG.add(this.trescores);
  1030.         this.filtrosJPG.add(this.trescores2);
  1031.         this.filtrosJPG.add(this.bolinhas);
  1032.         this.filtrosJPG.add(this.redefect);
  1033.         this.filtrosJPG.add(this.moldura);
  1034.         this.operacao.add(this.operacaoaritimetica);
  1035.         this.operacao.add(this.operacaologica);
  1036.         this.operacao.add(this.funcao);
  1037.         this.arquivo.add(this.abrir);
  1038.         this.arquivo.add(this.abrirJ);
  1039.         this.arquivo.add(this.sair);
  1040.         this.menubar.add(this.arquivo);
  1041.         this.menubar.add(this.operacao);
  1042.         this.menubar.add(this.filtro);
  1043.         this.menubar.add(this.filtrosJPG);
  1044.         this.menubar.add(this.histograma);
  1045.         this.menubar.add(this.useimagem);
  1046.         this.menubar.add(this.ajuda);
  1047.         this.setJMenuBar(this.menubar);
  1048.  
  1049.         //Tonrnar a janela visivel
  1050.         this.setVisible(true);
  1051.     }
  1052.  
  1053.     //Ler um arquivo File e o transfomando em uma instancia de ImagemPGM
  1054.     public void lerImagem(File file) {
  1055.         updateLista();
  1056.         if (listaimagens.size() > 1) {
  1057.             JOptionPane.showMessageDialog(this, "Já tem duas imagens abertas para as operações!");
  1058.         } else {
  1059.             try {
  1060.                 ImagemPGM imagem = new ImagemPGM(file);
  1061.                 FrameImagem imagemframe = new FrameImagem();
  1062.                 imagemframe.iniciaFrameImagem(imagem);
  1063.                 this.add(imagemframe);
  1064.                 this.listaimagens.add(imagemframe);
  1065.             } catch (IOException e) {
  1066.                 JOptionPane.showMessageDialog(this, e.getMessage());
  1067.             }
  1068.  
  1069.         }
  1070.  
  1071.     }
  1072.  
  1073.     public void lerImagemJPG(File file) {
  1074.         try {
  1075.             this.imagem = ImageIO.read(file);
  1076.             FrameImagem imagemframe = new FrameImagem();
  1077.             imagemframe.iniciaFrameImagem(imagem);
  1078.             this.add(imagemframe);
  1079.             BufferedImage imagembuff = ImageIO.read(file);
  1080.         } catch (Exception e) {
  1081.             JOptionPane.showMessageDialog(this, "Problemas ao ler a imagem");
  1082.         }
  1083.  
  1084.     }
  1085.  
  1086.     //Atualiza e realoca suas posições.
  1087.  
  1088.     private void updateLista() {
  1089.         for (int i = 0; i < listaimagens.size(); i++) {
  1090.             if (this.listaimagens.get(i).isClosed()) {
  1091.                 this.listaimagens.remove(i);
  1092.             }
  1093.         }
  1094.     }
  1095.  
  1096.     //Verifica se a lista de arquivo ImagemPGM já estar no máximo.
  1097.     private boolean checaLista() {
  1098.         if (this.listaimagens.isEmpty()) {
  1099.             return false;
  1100.         } else {
  1101.             return listaimagens.size() == 2;
  1102.         }
  1103.     }
  1104.  
  1105.     //Faz a operação ao clicar sobre o botão "Sobre"
  1106.     private void clickSobre(java.awt.event.ActionEvent evt) {
  1107.         JOptionPane.showMessageDialog(this, "Processo Digital de Imagem\n"
  1108.                 + "Esse programa foi desenvolvido por:\n"
  1109.                 + "Gelson Lopes Nascimento\n"
  1110.                 + "Igor Wescley Silva de Freitas\n\n"
  1111.                 + "Professor: Leiva Casemiro"
  1112.                 + "Contato:\n"
  1113.                 + "gelsonlopes.san@gmail.com\n"
  1114.                 + "igorwescley@ufersa.edu.br\n\n"
  1115.                 + "Universidade Federal Rural do Semi-Árido\n"
  1116.                 + "Bacharelado Sistema de Informação\n"
  1117.                 + "Versão 2.0\n");
  1118.     }
  1119.  
  1120.     //Faz a operação ao clicar sobre o botão "Sair"
  1121.     private void clickSair(java.awt.event.ActionEvent evt) {
  1122.         System.exit(0);
  1123.     }
  1124.  
  1125.     //Faz a operação ao clicar sobre o botão "Abrir"
  1126.     private void clickAbrir(java.awt.event.ActionEvent evt) {
  1127.         int returnValue = this.choose.showOpenDialog(this);
  1128.         if (returnValue == JFileChooser.APPROVE_OPTION) {
  1129.             try {
  1130.                 File fileChose = this.choose.getSelectedFile();
  1131.                 lerImagem(fileChose);
  1132.             } catch (Exception e) {
  1133.                 JOptionPane.showMessageDialog(this, e.getMessage());
  1134.             }
  1135.         }
  1136.     }
  1137.  
  1138.     private void clickAbrirJ(java.awt.event.ActionEvent evt) {
  1139.         int returnValue = this.chooseJ.showOpenDialog(this);
  1140.         if (returnValue == JFileChooser.APPROVE_OPTION) {
  1141.             try {
  1142.                 File fileChose = this.chooseJ.getSelectedFile();
  1143.                 lerImagemJPG(fileChose);
  1144.             } catch (Exception e) {
  1145.                 JOptionPane.showMessageDialog(this, e.getMessage());
  1146.             }
  1147.         }
  1148.     }
  1149.  
  1150.     private void clickUseresultado(java.awt.event.ActionEvent evt) {
  1151.         if (this.imagemresultado == null) {
  1152.             JOptionPane.showMessageDialog(this, "Não há imagem resultado armazenada!");
  1153.         } else {
  1154.             this.listaimagens.clear();
  1155.             this.listaimagens.add(this.imagemresultado);
  1156.             JOptionPane.showMessageDialog(this, "Imagem resultado colocado em uso!");
  1157.         }
  1158.     }
  1159.  
  1160.     private void clickUsesegunda(java.awt.event.ActionEvent evt) {
  1161.         if (this.listaimagens.isEmpty()) {
  1162.             JOptionPane.showMessageDialog(this, "Não há imagem resultado armazenada!");
  1163.         } else {
  1164.             if (this.listaimagens.size() == 2) {
  1165.                 FrameImagem temp = this.listaimagens.get(0);
  1166.                 FrameImagem temp2 = this.listaimagens.get(1);
  1167.                 this.listaimagens.clear();
  1168.                 this.listaimagens.add(temp2);
  1169.                 this.listaimagens.add(temp);
  1170.                 JOptionPane.showMessageDialog(this, "Pronto a segunda imagem estar sendo usada!");
  1171.             } else {
  1172.                 JOptionPane.showMessageDialog(this, "Abra uma nova imagem!");
  1173.             }
  1174.         }
  1175.     }
  1176.  
  1177.     private void clickSoma(java.awt.event.ActionEvent evt) {
  1178.         if (checaLista()) {
  1179.             ImagemPGM imagemresultadosoma;
  1180.             imagemresultadosoma = operacaomat.soma(this.listaimagens.get(0).getImagepgm(), this.listaimagens.get(1).getImagepgm());
  1181.             FrameImagem frameresultado = new FrameImagem();
  1182.             frameresultado.iniciaFrameImagem(imagemresultadosoma);
  1183.             this.imagemresultado = frameresultado;
  1184.             this.add(frameresultado);
  1185.         } else {
  1186.             JOptionPane.showMessageDialog(this, "É necessário duas imagens para fazer a soma!");
  1187.         }
  1188.     }
  1189.  
  1190.     private void clickSubtracao(java.awt.event.ActionEvent evt) {
  1191.         if (checaLista()) {
  1192.             ImagemPGM imagemresultadosub;
  1193.             imagemresultadosub = operacaomat.subtracao(this.listaimagens.get(0).getImagepgm(), this.listaimagens.get(1).getImagepgm());
  1194.             FrameImagem frameresultado = new FrameImagem();
  1195.             frameresultado.iniciaFrameImagem(imagemresultadosub);
  1196.             this.imagemresultado = frameresultado;
  1197.             this.add(frameresultado);
  1198.         } else {
  1199.             JOptionPane.showMessageDialog(this, "É necessário duas imagens para fazer a subtração!");
  1200.         }
  1201.     }
  1202.  
  1203.     private void clickMultplicacao(java.awt.event.ActionEvent evt) {
  1204.         if (checaLista()) {
  1205.             ImagemPGM imagemresultadomult;
  1206.             imagemresultadomult = operacaomat.multiplicacao(this.listaimagens.get(0).getImagepgm(), this.listaimagens.get(1).getImagepgm());
  1207.             FrameImagem frameresultado = new FrameImagem();
  1208.             frameresultado.iniciaFrameImagem(imagemresultadomult);
  1209.             this.imagemresultado = frameresultado;
  1210.             this.add(frameresultado);
  1211.         } else {
  1212.             JOptionPane.showMessageDialog(this, "É necessário duas imagens para fazer a multiplicação!");
  1213.         }
  1214.     }
  1215.  
  1216.     private void clickDivisao(java.awt.event.ActionEvent evt) {
  1217.         if (checaLista()) {
  1218.             ImagemPGM imagemresultadodiv;
  1219.             imagemresultadodiv = operacaomat.divisao(this.listaimagens.get(0).getImagepgm(), this.listaimagens.get(1).getImagepgm());
  1220.             FrameImagem frameresultado = new FrameImagem();
  1221.             frameresultado.iniciaFrameImagem(imagemresultadodiv);
  1222.             this.imagemresultado = frameresultado;
  1223.             this.add(frameresultado);
  1224.         } else {
  1225.             JOptionPane.showMessageDialog(this, "É necessário duas imagens para fazer a divisão!");
  1226.         }
  1227.     }
  1228.  
  1229.     private void clickOr(java.awt.event.ActionEvent evt) {
  1230.         if (checaLista()) {
  1231.             ImagemPGM imagemresultadoor;
  1232.             imagemresultadoor = operacaomat.or(this.listaimagens.get(0).getImagepgm(), this.listaimagens.get(1).getImagepgm());
  1233.             FrameImagem frameresultado = new FrameImagem();
  1234.             frameresultado.iniciaFrameImagem(imagemresultadoor);
  1235.             this.imagemresultado = frameresultado;
  1236.             this.add(frameresultado);
  1237.         } else {
  1238.             JOptionPane.showMessageDialog(this, "É necessário duas imagens para fazer o OU lógico!");
  1239.         }
  1240.     }
  1241.  
  1242.     private void clickAnd(java.awt.event.ActionEvent evt) {
  1243.         if (checaLista()) {
  1244.             ImagemPGM imagemresultadoand;
  1245.             imagemresultadoand = operacaomat.and(this.listaimagens.get(0).getImagepgm(), this.listaimagens.get(1).getImagepgm());
  1246.             FrameImagem frameresultado = new FrameImagem();
  1247.             frameresultado.iniciaFrameImagem(imagemresultadoand);
  1248.             this.imagemresultado = frameresultado;
  1249.             this.add(frameresultado);
  1250.         } else {
  1251.             JOptionPane.showMessageDialog(this, "É necessário duas imagens para fazer o AND logico!");
  1252.         }
  1253.     }
  1254.  
  1255.     private void clickXor(java.awt.event.ActionEvent evt) {
  1256.         if (checaLista()) {
  1257.             ImagemPGM imagemresultadoxor;
  1258.             imagemresultadoxor = operacaomat.xor(this.listaimagens.get(0).getImagepgm(), this.listaimagens.get(1).getImagepgm());
  1259.             FrameImagem frameresultado = new FrameImagem();
  1260.             frameresultado.iniciaFrameImagem(imagemresultadoxor);
  1261.             this.imagemresultado = frameresultado;
  1262.             this.add(frameresultado);
  1263.         } else {
  1264.             JOptionPane.showMessageDialog(this, "É necessário duas imagens para fazer o XOR lógico!");
  1265.         }
  1266.     }
  1267.  
  1268.     private void clickNot(java.awt.event.ActionEvent evt) {
  1269.         if (this.listaimagens.isEmpty()) {
  1270.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  1271.         } else {
  1272.             ImagemPGM imagemnot = operacaofuncao.notImagem(this.listaimagens.get(0).getImagepgm());
  1273.             FrameImagem frameresultado = new FrameImagem();
  1274.             frameresultado.iniciaFrameImagem(imagemnot);
  1275.             this.imagemresultado = frameresultado;
  1276.             this.add(imagemresultado);
  1277.         }
  1278.  
  1279.     }
  1280.  
  1281.     private void clickDoisBit(java.awt.event.ActionEvent evt) {
  1282.         if (this.listaimagens.isEmpty()) {
  1283.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  1284.         } else {
  1285.             ImagemPGM imagemdoisbit = operacaofuncao.bitImagem(this.listaimagens.get(0).getImagepgm());
  1286.             FrameImagem frameresultado = new FrameImagem();
  1287.             frameresultado.iniciaFrameImagem(imagemdoisbit);
  1288.             this.imagemresultado = frameresultado;
  1289.             this.add(frameresultado);
  1290.         }
  1291.  
  1292.     }
  1293.  
  1294.     private void clickFuncaoLinear(java.awt.event.ActionEvent evt, String varA, String varB) {
  1295.         if (this.listaimagens.isEmpty()) {
  1296.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  1297.             return;
  1298.         }
  1299.         int a = Integer.parseInt(varA);
  1300.         int b = Integer.parseInt(varB);
  1301.         ImagemPGM imagemfuncao = operacaofuncao.funcaoLinear(this.listaimagens.get(0).getImagepgm(), a, b);
  1302.         FrameImagem frameresultado = new FrameImagem();
  1303.         frameresultado.iniciaFrameImagem(imagemfuncao);
  1304.         this.imagemresultado = frameresultado;
  1305.         this.add(frameresultado);
  1306.     }
  1307.  
  1308.     private void clickRaizQuadrada(java.awt.event.ActionEvent evt) {
  1309.         if (this.listaimagens.isEmpty()) {
  1310.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  1311.             return;
  1312.         }
  1313.         ImagemPGM imagemraiz = operacaofuncao.raizQuadrada(this.listaimagens.get(0).getImagepgm());
  1314.         FrameImagem frameresultado = new FrameImagem();
  1315.         frameresultado.iniciaFrameImagem(imagemraiz);
  1316.         this.imagemresultado = frameresultado;
  1317.         this.add(frameresultado);
  1318.     }
  1319.  
  1320.     private void clickQuadrada(java.awt.event.ActionEvent evt) {
  1321.         if (this.listaimagens.isEmpty()) {
  1322.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  1323.             return;
  1324.         }
  1325.         ImagemPGM imagemquadrada = operacaofuncao.quadrada(this.listaimagens.get(0).getImagepgm());
  1326.         FrameImagem frameresultado = new FrameImagem();
  1327.         frameresultado.iniciaFrameImagem(imagemquadrada);
  1328.         this.imagemresultado = frameresultado;
  1329.         this.add(frameresultado);
  1330.     }
  1331.  
  1332.     private void clickExponencial(java.awt.event.ActionEvent evt) {
  1333.         if (this.listaimagens.isEmpty()) {
  1334.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  1335.             return;
  1336.         }
  1337.         ImagemPGM imagemexponencial = operacaofuncao.exponencial(this.listaimagens.get(0).getImagepgm());
  1338.         FrameImagem frameresultado = new FrameImagem();
  1339.         frameresultado.iniciaFrameImagem(imagemexponencial);
  1340.         this.imagemresultado = frameresultado;
  1341.         this.add(frameresultado);
  1342.     }
  1343.  
  1344.     private void clickGamma(java.awt.event.ActionEvent evt) {
  1345.         if (this.listaimagens.isEmpty()) {
  1346.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  1347.             return;
  1348.         }
  1349.         double value = 0;
  1350.         try {
  1351.             value = Double.parseDouble(JOptionPane.showInputDialog("Digite o valor de 'Y'"));
  1352.         } catch (Exception e) {
  1353.             JOptionPane.showMessageDialog(null, "Erro no parametro Y");
  1354.         }
  1355.         ImagemPGM imagemexponencial = operacaofuncao.gamma(this.listaimagens.get(0).getImagepgm(), value);
  1356.         FrameImagem frameresultado = new FrameImagem();
  1357.         frameresultado.iniciaFrameImagem(imagemexponencial);
  1358.         this.imagemresultado = frameresultado;
  1359.         this.add(frameresultado);
  1360.     }
  1361.  
  1362.     private void clickLogaritomo(java.awt.event.ActionEvent evt) {
  1363.         if (this.listaimagens.isEmpty()) {
  1364.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  1365.             return;
  1366.         }
  1367.         ImagemPGM imagemlogaritmo = operacaofuncao.logaritima(this.listaimagens.get(0).getImagepgm());
  1368.         FrameImagem frameresultado = new FrameImagem();
  1369.         frameresultado.iniciaFrameImagem(imagemlogaritmo);
  1370.         this.imagemresultado = frameresultado;
  1371.         this.add(frameresultado);
  1372.     }
  1373.  
  1374.     private void clickMediah1(java.awt.event.ActionEvent evt) {
  1375.         if (this.listaimagens.isEmpty()) {
  1376.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  1377.             return;
  1378.         }
  1379.         Mascara3x3 mascara = new Mascara3x3(this, 1, 1, 1, 1, 1, 1, 1, 1, 1);
  1380.         int a = 0, b = 0, c = 0, d = 0, e = 0, f = 0, g = 0, h = 0, i = 0;
  1381.         if (mascara.getCampo00().equals("") || mascara.getCampo01().equals("")
  1382.                 || mascara.getCampo02().equals("")
  1383.                 || mascara.getCampo10().equals("")
  1384.                 || mascara.getCampo11().equals("")
  1385.                 || mascara.getCampo12().equals("")
  1386.                 || mascara.getCampo20().equals("")
  1387.                 || mascara.getCampo21().equals("")
  1388.                 || mascara.getCampo22().equals("")) {
  1389.             JOptionPane.showMessageDialog(this, "Preencha todos os valores da mascara!");
  1390.             return;
  1391.         }
  1392.         a = Integer.parseInt(mascara.getCampo00());
  1393.         b = Integer.parseInt(mascara.getCampo01());
  1394.         c = Integer.parseInt(mascara.getCampo02());
  1395.         d = Integer.parseInt(mascara.getCampo10());
  1396.         e = Integer.parseInt(mascara.getCampo11());
  1397.         f = Integer.parseInt(mascara.getCampo12());
  1398.         g = Integer.parseInt(mascara.getCampo20());
  1399.         h = Integer.parseInt(mascara.getCampo21());
  1400.         i = Integer.parseInt(mascara.getCampo22());
  1401.         passabaixas.criaMascara3x3(a, b, c, d, e, f, g, h, i);
  1402.         ImagemPGM imagemh1 = passabaixas.aplicaMediaH1(this.listaimagens.get(0).getImagepgm());
  1403.         FrameImagem frameresultado = new FrameImagem();
  1404.         frameresultado.iniciaFrameImagem(imagemh1);
  1405.         this.imagemresultado = frameresultado;
  1406.         this.add(frameresultado);
  1407.         mascara.dispose();
  1408.     }
  1409.  
  1410.     private void clickMediah2(java.awt.event.ActionEvent evt) {
  1411.         if (this.listaimagens.isEmpty()) {
  1412.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  1413.             return;
  1414.         }
  1415.         Mascara5x5 mascara = new Mascara5x5(this);
  1416.         int a = 0, b = 0, c = 0, d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, x = 0, w = 0, y = 0;
  1417.         if (mascara.getCampo00().equals("") || mascara.getCampo01().equals("")
  1418.                 || mascara.getCampo02().equals("")
  1419.                 || mascara.getCampo03().equals("")
  1420.                 || mascara.getCampo04().equals("")
  1421.                 || mascara.getCampo10().equals("")
  1422.                 || mascara.getCampo12().equals("")
  1423.                 || mascara.getCampo12().equals("")
  1424.                 || mascara.getCampo13().equals("")
  1425.                 || mascara.getCampo14().equals("")
  1426.                 || mascara.getCampo20().equals("")
  1427.                 || mascara.getCampo21().equals("")
  1428.                 || mascara.getCampo22().equals("")
  1429.                 || mascara.getCampo23().equals("")
  1430.                 || mascara.getCampo24().equals("")
  1431.                 || mascara.getCampo30().equals("")
  1432.                 || mascara.getCampo31().equals("")
  1433.                 || mascara.getCampo32().equals("")
  1434.                 || mascara.getCampo33().equals("")
  1435.                 || mascara.getCampo34().equals("")
  1436.                 || mascara.getCampo40().equals("")
  1437.                 || mascara.getCampo41().equals("")
  1438.                 || mascara.getCampo42().equals("")
  1439.                 || mascara.getCampo43().equals("")
  1440.                 || mascara.getCampo44().equals("")) {
  1441.             JOptionPane.showMessageDialog(this, "Preencha todos os valores da mascara!");
  1442.             return;
  1443.         }
  1444.         a = Integer.parseInt(mascara.getCampo00());
  1445.         b = Integer.parseInt(mascara.getCampo01());
  1446.         c = Integer.parseInt(mascara.getCampo02());
  1447.         d = Integer.parseInt(mascara.getCampo03());
  1448.         e = Integer.parseInt(mascara.getCampo04());
  1449.         f = Integer.parseInt(mascara.getCampo10());
  1450.         g = Integer.parseInt(mascara.getCampo11());
  1451.         h = Integer.parseInt(mascara.getCampo12());
  1452.         i = Integer.parseInt(mascara.getCampo13());
  1453.         j = Integer.parseInt(mascara.getCampo14());
  1454.         k = Integer.parseInt(mascara.getCampo20());
  1455.         l = Integer.parseInt(mascara.getCampo21());
  1456.         m = Integer.parseInt(mascara.getCampo22());
  1457.         n = Integer.parseInt(mascara.getCampo23());
  1458.         o = Integer.parseInt(mascara.getCampo24());
  1459.         p = Integer.parseInt(mascara.getCampo30());
  1460.         q = Integer.parseInt(mascara.getCampo31());
  1461.         r = Integer.parseInt(mascara.getCampo32());
  1462.         s = Integer.parseInt(mascara.getCampo33());
  1463.         t = Integer.parseInt(mascara.getCampo34());
  1464.         u = Integer.parseInt(mascara.getCampo40());
  1465.         v = Integer.parseInt(mascara.getCampo41());
  1466.         x = Integer.parseInt(mascara.getCampo42());
  1467.         w = Integer.parseInt(mascara.getCampo43());
  1468.         y = Integer.parseInt(mascara.getCampo44());
  1469.         passabaixas.criaMascara5x5(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, x, w, y);
  1470.         ImagemPGM imagemh1 = passabaixas.aplicaMediaH2(this.listaimagens.get(0).getImagepgm());
  1471.         FrameImagem frameresultado = new FrameImagem();
  1472.         frameresultado.iniciaFrameImagem(imagemh1);
  1473.         this.imagemresultado = frameresultado;
  1474.         this.add(frameresultado);
  1475.         mascara.dispose();
  1476.     }
  1477.  
  1478.     private void clickModah2(java.awt.event.ActionEvent evt) {
  1479.         if (this.listaimagens.isEmpty()) {
  1480.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  1481.             return;
  1482.         }
  1483.         Mascara5x5 mascara = new Mascara5x5(this);
  1484.         int a = 0, b = 0, c = 0, d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, x = 0, w = 0, y = 0;
  1485.         if (mascara.getCampo00().equals("") || mascara.getCampo01().equals("")
  1486.                 || mascara.getCampo02().equals("")
  1487.                 || mascara.getCampo03().equals("")
  1488.                 || mascara.getCampo04().equals("")
  1489.                 || mascara.getCampo10().equals("")
  1490.                 || mascara.getCampo12().equals("")
  1491.                 || mascara.getCampo12().equals("")
  1492.                 || mascara.getCampo13().equals("")
  1493.                 || mascara.getCampo14().equals("")
  1494.                 || mascara.getCampo20().equals("")
  1495.                 || mascara.getCampo21().equals("")
  1496.                 || mascara.getCampo22().equals("")
  1497.                 || mascara.getCampo23().equals("")
  1498.                 || mascara.getCampo24().equals("")
  1499.                 || mascara.getCampo30().equals("")
  1500.                 || mascara.getCampo31().equals("")
  1501.                 || mascara.getCampo32().equals("")
  1502.                 || mascara.getCampo33().equals("")
  1503.                 || mascara.getCampo34().equals("")
  1504.                 || mascara.getCampo40().equals("")
  1505.                 || mascara.getCampo41().equals("")
  1506.                 || mascara.getCampo42().equals("")
  1507.                 || mascara.getCampo43().equals("")
  1508.                 || mascara.getCampo44().equals("")) {
  1509.             JOptionPane.showMessageDialog(this, "Preencha todos os valores da mascara!");
  1510.             return;
  1511.         }
  1512.         a = Integer.parseInt(mascara.getCampo00());
  1513.         b = Integer.parseInt(mascara.getCampo01());
  1514.         c = Integer.parseInt(mascara.getCampo02());
  1515.         d = Integer.parseInt(mascara.getCampo03());
  1516.         e = Integer.parseInt(mascara.getCampo04());
  1517.         f = Integer.parseInt(mascara.getCampo10());
  1518.         g = Integer.parseInt(mascara.getCampo11());
  1519.         h = Integer.parseInt(mascara.getCampo12());
  1520.         i = Integer.parseInt(mascara.getCampo13());
  1521.         j = Integer.parseInt(mascara.getCampo14());
  1522.         k = Integer.parseInt(mascara.getCampo20());
  1523.         l = Integer.parseInt(mascara.getCampo21());
  1524.         m = Integer.parseInt(mascara.getCampo22());
  1525.         n = Integer.parseInt(mascara.getCampo23());
  1526.         o = Integer.parseInt(mascara.getCampo24());
  1527.         p = Integer.parseInt(mascara.getCampo30());
  1528.         q = Integer.parseInt(mascara.getCampo31());
  1529.         r = Integer.parseInt(mascara.getCampo32());
  1530.         s = Integer.parseInt(mascara.getCampo33());
  1531.         t = Integer.parseInt(mascara.getCampo34());
  1532.         u = Integer.parseInt(mascara.getCampo40());
  1533.         v = Integer.parseInt(mascara.getCampo41());
  1534.         x = Integer.parseInt(mascara.getCampo42());
  1535.         w = Integer.parseInt(mascara.getCampo43());
  1536.         y = Integer.parseInt(mascara.getCampo44());
  1537.         passabaixas.criaMascara5x5(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, x, w, y);
  1538.         ImagemPGM imagemh1 = passabaixas.aplicaModaH2(this.listaimagens.get(0).getImagepgm());
  1539.         FrameImagem frameresultado = new FrameImagem();
  1540.         frameresultado.iniciaFrameImagem(imagemh1);
  1541.         this.imagemresultado = frameresultado;
  1542.         this.add(frameresultado);
  1543.         mascara.dispose();
  1544.     }
  1545.  
  1546.     private void clickModah1(java.awt.event.ActionEvent evt) {
  1547.         if (this.listaimagens.isEmpty()) {
  1548.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  1549.             return;
  1550.         }
  1551.         Mascara3x3 mascara = new Mascara3x3(this, 1, 1, 1, 1, 1, 1, 1, 1, 1);
  1552.         int a = 0, b = 0, c = 0, d = 0, e = 0, f = 0, g = 0, h = 0, i = 0;
  1553.         if (mascara.getCampo00().equals("") || mascara.getCampo01().equals("")
  1554.                 || mascara.getCampo02().equals("")
  1555.                 || mascara.getCampo10().equals("")
  1556.                 || mascara.getCampo11().equals("")
  1557.                 || mascara.getCampo12().equals("")
  1558.                 || mascara.getCampo20().equals("")
  1559.                 || mascara.getCampo21().equals("")
  1560.                 || mascara.getCampo22().equals("")) {
  1561.             JOptionPane.showMessageDialog(this, "Preencha todos os valores da mascara!");
  1562.             return;
  1563.         }
  1564.         a = Integer.parseInt(mascara.getCampo00());
  1565.         b = Integer.parseInt(mascara.getCampo01());
  1566.         c = Integer.parseInt(mascara.getCampo02());
  1567.         d = Integer.parseInt(mascara.getCampo10());
  1568.         e = Integer.parseInt(mascara.getCampo11());
  1569.         f = Integer.parseInt(mascara.getCampo12());
  1570.         g = Integer.parseInt(mascara.getCampo20());
  1571.         h = Integer.parseInt(mascara.getCampo21());
  1572.         i = Integer.parseInt(mascara.getCampo22());
  1573.         passabaixas.criaMascara3x3(a, b, c, d, e, f, g, h, i);
  1574.         ImagemPGM imagemh1 = passabaixas.aplicaModaH1(this.listaimagens.get(0).getImagepgm());
  1575.         FrameImagem frameresultado = new FrameImagem();
  1576.         frameresultado.iniciaFrameImagem(imagemh1);
  1577.         this.imagemresultado = frameresultado;
  1578.         this.add(frameresultado);
  1579.         mascara.dispose();
  1580.     }
  1581.  
  1582.     private void clickMedianah1(java.awt.event.ActionEvent evt) {
  1583.         if (this.listaimagens.isEmpty()) {
  1584.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  1585.             return;
  1586.         }
  1587.         Mascara3x3 mascara = new Mascara3x3(this, 1, 1, 1, 1, 1, 1, 1, 1, 1);
  1588.         int a = 0, b = 0, c = 0, d = 0, e = 0, f = 0, g = 0, h = 0, i = 0;
  1589.         if (mascara.getCampo00().equals("") || mascara.getCampo01().equals("")
  1590.                 || mascara.getCampo02().equals("")
  1591.                 || mascara.getCampo10().equals("")
  1592.                 || mascara.getCampo11().equals("")
  1593.                 || mascara.getCampo12().equals("")
  1594.                 || mascara.getCampo20().equals("")
  1595.                 || mascara.getCampo21().equals("")
  1596.                 || mascara.getCampo22().equals("")) {
  1597.             JOptionPane.showMessageDialog(this, "Preencha todos os valores da mascara!");
  1598.             return;
  1599.         }
  1600.         a = Integer.parseInt(mascara.getCampo00());
  1601.         b = Integer.parseInt(mascara.getCampo01());
  1602.         c = Integer.parseInt(mascara.getCampo02());
  1603.         d = Integer.parseInt(mascara.getCampo10());
  1604.         e = Integer.parseInt(mascara.getCampo11());
  1605.         f = Integer.parseInt(mascara.getCampo12());
  1606.         g = Integer.parseInt(mascara.getCampo20());
  1607.         h = Integer.parseInt(mascara.getCampo21());
  1608.         i = Integer.parseInt(mascara.getCampo22());
  1609.         passabaixas.criaMascara3x3(a, b, c, d, e, f, g, h, i);
  1610.         ImagemPGM imagemh1 = passabaixas.aplicaMedianaH1(this.listaimagens.get(0).getImagepgm());
  1611.         FrameImagem frameresultado = new FrameImagem();
  1612.         frameresultado.iniciaFrameImagem(imagemh1);
  1613.         this.imagemresultado = frameresultado;
  1614.         this.add(frameresultado);
  1615.         mascara.dispose();
  1616.     }
  1617.  
  1618.     private void clickMedianah2(java.awt.event.ActionEvent evt) {
  1619.         if (this.listaimagens.isEmpty()) {
  1620.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  1621.             return;
  1622.         }
  1623.         Mascara5x5 mascara = new Mascara5x5(this);
  1624.         int a = 0, b = 0, c = 0, d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, x = 0, w = 0, y = 0;
  1625.         if (mascara.getCampo00().equals("") || mascara.getCampo01().equals("")
  1626.                 || mascara.getCampo02().equals("")
  1627.                 || mascara.getCampo03().equals("")
  1628.                 || mascara.getCampo04().equals("")
  1629.                 || mascara.getCampo10().equals("")
  1630.                 || mascara.getCampo12().equals("")
  1631.                 || mascara.getCampo12().equals("")
  1632.                 || mascara.getCampo13().equals("")
  1633.                 || mascara.getCampo14().equals("")
  1634.                 || mascara.getCampo20().equals("")
  1635.                 || mascara.getCampo21().equals("")
  1636.                 || mascara.getCampo22().equals("")
  1637.                 || mascara.getCampo23().equals("")
  1638.                 || mascara.getCampo24().equals("")
  1639.                 || mascara.getCampo30().equals("")
  1640.                 || mascara.getCampo31().equals("")
  1641.                 || mascara.getCampo32().equals("")
  1642.                 || mascara.getCampo33().equals("")
  1643.                 || mascara.getCampo34().equals("")
  1644.                 || mascara.getCampo40().equals("")
  1645.                 || mascara.getCampo41().equals("")
  1646.                 || mascara.getCampo42().equals("")
  1647.                 || mascara.getCampo43().equals("")
  1648.                 || mascara.getCampo44().equals("")) {
  1649.             JOptionPane.showMessageDialog(this, "Preencha todos os valores da mascara!");
  1650.             return;
  1651.         }
  1652.         a = Integer.parseInt(mascara.getCampo00());
  1653.         b = Integer.parseInt(mascara.getCampo01());
  1654.         c = Integer.parseInt(mascara.getCampo02());
  1655.         d = Integer.parseInt(mascara.getCampo03());
  1656.         e = Integer.parseInt(mascara.getCampo04());
  1657.         f = Integer.parseInt(mascara.getCampo10());
  1658.         g = Integer.parseInt(mascara.getCampo11());
  1659.         h = Integer.parseInt(mascara.getCampo12());
  1660.         i = Integer.parseInt(mascara.getCampo13());
  1661.         j = Integer.parseInt(mascara.getCampo14());
  1662.         k = Integer.parseInt(mascara.getCampo20());
  1663.         l = Integer.parseInt(mascara.getCampo21());
  1664.         m = Integer.parseInt(mascara.getCampo22());
  1665.         n = Integer.parseInt(mascara.getCampo23());
  1666.         o = Integer.parseInt(mascara.getCampo24());
  1667.         p = Integer.parseInt(mascara.getCampo30());
  1668.         q = Integer.parseInt(mascara.getCampo31());
  1669.         r = Integer.parseInt(mascara.getCampo32());
  1670.         s = Integer.parseInt(mascara.getCampo33());
  1671.         t = Integer.parseInt(mascara.getCampo34());
  1672.         u = Integer.parseInt(mascara.getCampo40());
  1673.         v = Integer.parseInt(mascara.getCampo41());
  1674.         x = Integer.parseInt(mascara.getCampo42());
  1675.         w = Integer.parseInt(mascara.getCampo43());
  1676.         y = Integer.parseInt(mascara.getCampo44());
  1677.         passabaixas.criaMascara5x5(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, x, w, y);
  1678.         ImagemPGM imagemh1 = passabaixas.aplicaMedianaH2(this.listaimagens.get(0).getImagepgm());
  1679.         FrameImagem frameresultado = new FrameImagem();
  1680.         frameresultado.iniciaFrameImagem(imagemh1);
  1681.         this.imagemresultado = frameresultado;
  1682.         this.add(frameresultado);
  1683.         mascara.dispose();
  1684.     }
  1685.  
  1686.     private void clickMaximo3x3(java.awt.event.ActionEvent evt) {
  1687.         if (this.listaimagens.isEmpty()) {
  1688.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  1689.             return;
  1690.         }
  1691.         ImagemPGM imagemh1 = passabaixas.aplicaMaximoH1(this.listaimagens.get(0).getImagepgm());
  1692.         FrameImagem frameresultado = new FrameImagem();
  1693.         frameresultado.iniciaFrameImagem(imagemh1);
  1694.         this.imagemresultado = frameresultado;
  1695.         this.add(frameresultado);
  1696.     }
  1697.  
  1698.     private void clickMaximo5x5(java.awt.event.ActionEvent evt) {
  1699.         if (this.listaimagens.isEmpty()) {
  1700.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  1701.             return;
  1702.         }
  1703.         ImagemPGM imagemh1 = passabaixas.aplicaMaximoH2(this.listaimagens.get(0).getImagepgm());
  1704.         FrameImagem frameresultado = new FrameImagem();
  1705.         frameresultado.iniciaFrameImagem(imagemh1);
  1706.         this.imagemresultado = frameresultado;
  1707.         this.add(frameresultado);
  1708.     }
  1709.  
  1710.     private void clickMinimo3x3(java.awt.event.ActionEvent evt) {
  1711.         if (this.listaimagens.isEmpty()) {
  1712.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  1713.             return;
  1714.         }
  1715.         ImagemPGM imagemh1 = passabaixas.aplicaMinimoH1(this.listaimagens.get(0).getImagepgm());
  1716.         FrameImagem frameresultado = new FrameImagem();
  1717.         frameresultado.iniciaFrameImagem(imagemh1);
  1718.         this.imagemresultado = frameresultado;
  1719.         this.add(frameresultado);
  1720.     }
  1721.  
  1722.     private void clickMinimo5x5(java.awt.event.ActionEvent evt) {
  1723.         if (this.listaimagens.isEmpty()) {
  1724.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  1725.             return;
  1726.         }
  1727.         ImagemPGM imagemh1 = passabaixas.aplicaMinimoH2(this.listaimagens.get(0).getImagepgm());
  1728.         FrameImagem frameresultado = new FrameImagem();
  1729.         frameresultado.iniciaFrameImagem(imagemh1);
  1730.         this.imagemresultado = frameresultado;
  1731.         this.add(frameresultado);
  1732.     }
  1733.  
  1734.     private void clickPassaAltah1(java.awt.event.ActionEvent evt) {
  1735.         if (this.listaimagens.isEmpty()) {
  1736.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  1737.             return;
  1738.         }
  1739.  
  1740.         ImagemPGM imagemresut = passaaltas.aplicaPassaAlta(this.listaimagens.get(0).getImagepgm(), passaaltas.getH1());
  1741.         FrameImagem frameresultado = new FrameImagem();
  1742.         frameresultado.iniciaFrameImagem(imagemresut);
  1743.         this.imagemresultado = frameresultado;
  1744.         this.add(frameresultado);
  1745.     }
  1746.  
  1747.     private void clickPassaAltah2(java.awt.event.ActionEvent evt) {
  1748.         if (this.listaimagens.isEmpty()) {
  1749.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  1750.             return;
  1751.         }
  1752.  
  1753.         ImagemPGM imagemresut = passaaltas.aplicaPassaAlta(this.listaimagens.get(0).getImagepgm(),
  1754.                 passaaltas.getH2());
  1755.         FrameImagem frameresultado = new FrameImagem();
  1756.         frameresultado.iniciaFrameImagem(imagemresut);
  1757.         this.imagemresultado = frameresultado;
  1758.         this.add(frameresultado);
  1759.     }
  1760.  
  1761.     private void clickPassaAltam1(java.awt.event.ActionEvent evt) {
  1762.         if (this.listaimagens.isEmpty()) {
  1763.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  1764.             return;
  1765.         }
  1766.  
  1767.         ImagemPGM imagemresut = passaaltas.aplicaPassaAlta(this.listaimagens.get(0).getImagepgm(),
  1768.                 passaaltas.getM1());
  1769.         FrameImagem frameresultado = new FrameImagem();
  1770.         frameresultado.iniciaFrameImagem(imagemresut);
  1771.         this.imagemresultado = frameresultado;
  1772.         this.add(frameresultado);
  1773.     }
  1774.  
  1775.     private void clickPassaAltam2(java.awt.event.ActionEvent evt) {
  1776.         if (this.listaimagens.isEmpty()) {
  1777.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  1778.             return;
  1779.         }
  1780.  
  1781.         ImagemPGM imagemresut = passaaltas.aplicaPassaAlta(this.listaimagens.get(0).getImagepgm(),
  1782.                 passaaltas.getM2());
  1783.         FrameImagem frameresultado = new FrameImagem();
  1784.         frameresultado.iniciaFrameImagem(imagemresut);
  1785.         this.imagemresultado = frameresultado;
  1786.         this.add(frameresultado);
  1787.     }
  1788.  
  1789.     private void clickPassaAltam3(java.awt.event.ActionEvent evt) {
  1790.         if (this.listaimagens.isEmpty()) {
  1791.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  1792.             return;
  1793.         }
  1794.  
  1795.         ImagemPGM imagemresut = passaaltas.aplicaPassaAlta(this.listaimagens.get(0).getImagepgm(),
  1796.                 passaaltas.getM3());
  1797.         FrameImagem frameresultado = new FrameImagem();
  1798.         frameresultado.iniciaFrameImagem(imagemresut);
  1799.         this.imagemresultado = frameresultado;
  1800.         this.add(frameresultado);
  1801.     }
  1802.  
  1803.     private void clickPassaAltaHighBoosting(java.awt.event.ActionEvent evt) {
  1804.         if (this.listaimagens.isEmpty()) {
  1805.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  1806.             return;
  1807.         }
  1808.         double value = 1;
  1809.         try {
  1810.             value = Double.parseDouble(JOptionPane.showInputDialog(this, "Digite um valor 'A'"));
  1811.         } catch (Exception e) {
  1812.             JOptionPane.showMessageDialog(this, "Erro ao entrar com o valor 'A'");
  1813.         }
  1814.         ImagemPGM imagemresut = passaaltas.aplicaPassaAltaHighBoosting(this.listaimagens.get(0).getImagepgm(),
  1815.                 passaaltas.getH2(), value);
  1816.         FrameImagem frameresultado = new FrameImagem();
  1817.         frameresultado.iniciaFrameImagem(imagemresut);
  1818.         this.imagemresultado = frameresultado;
  1819.         this.add(frameresultado);
  1820.     }
  1821.  
  1822.     private void clickPreserveBorda1(java.awt.event.ActionEvent evt) {
  1823.         if (this.listaimagens.isEmpty()) {
  1824.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  1825.             return;
  1826.         }
  1827.  
  1828.         ImagemPGM imagemresut = preservaborda.aplicaPassaBaixaBordaKawahara(this.listaimagens.get(0).getImagepgm());
  1829.         FrameImagem frameresultado = new FrameImagem();
  1830.         frameresultado.iniciaFrameImagem(imagemresut);
  1831.         this.imagemresultado = frameresultado;
  1832.         this.add(frameresultado);
  1833.     }
  1834.  
  1835.     private void clickPreserveBorda2(java.awt.event.ActionEvent evt) {
  1836.         if (this.listaimagens.isEmpty()) {
  1837.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  1838.             return;
  1839.         }
  1840.  
  1841.         ImagemPGM imagemresut = preservaborda.aplicaPassaBaixaBordaTomita(this.listaimagens.get(0).getImagepgm());
  1842.         FrameImagem frameresultado = new FrameImagem();
  1843.         frameresultado.iniciaFrameImagem(imagemresut);
  1844.         this.imagemresultado = frameresultado;
  1845.         this.add(frameresultado);
  1846.     }
  1847.  
  1848.     private void clickPreserveBorda3(java.awt.event.ActionEvent evt) {
  1849.         if (this.listaimagens.isEmpty()) {
  1850.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  1851.             return;
  1852.         }
  1853.  
  1854.         ImagemPGM imagemresut = preservaborda.aplicaPassaBaixaBordaNagao(this.listaimagens.get(0).getImagepgm());
  1855.         FrameImagem frameresultado = new FrameImagem();
  1856.         frameresultado.iniciaFrameImagem(imagemresut);
  1857.         this.imagemresultado = frameresultado;
  1858.         this.add(frameresultado);
  1859.     }
  1860.  
  1861.     private void clickPreserveBorda4(java.awt.event.ActionEvent evt) {
  1862.         if (this.listaimagens.isEmpty()) {
  1863.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  1864.             return;
  1865.         }
  1866.  
  1867.         ImagemPGM imagemresut = preservaborda.aplicaPassaBaixaBordaSomboonkaew(this.listaimagens.get(0).getImagepgm());
  1868.         FrameImagem frameresultado = new FrameImagem();
  1869.         frameresultado.iniciaFrameImagem(imagemresut);
  1870.         this.imagemresultado = frameresultado;
  1871.         this.add(frameresultado);
  1872.     }
  1873.  
  1874.     private void clickPont2x2(java.awt.event.ActionEvent evt) {
  1875.         if (this.listaimagens.isEmpty()) {
  1876.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  1877.             return;
  1878.         }
  1879.         PontilhadoOrdenado pontilhado = new PontilhadoOrdenado();
  1880.         ImagemPGM imagemhalf = pontilhado.aplica2x2(this.listaimagens.get(0).getImagepgm());
  1881.         FrameImagem frameresultado = new FrameImagem();
  1882.         frameresultado.iniciaFrameImagem(imagemhalf);
  1883.         this.imagemresultado = frameresultado;
  1884.         this.add(frameresultado);
  1885.     }
  1886.  
  1887.     private void clickPont3x3(java.awt.event.ActionEvent evt) {
  1888.         if (this.listaimagens.isEmpty()) {
  1889.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  1890.             return;
  1891.         }
  1892.         PontilhadoOrdenado pontilhado = new PontilhadoOrdenado();
  1893.         ImagemPGM imagemhalf = pontilhado.aplica3x3(this.listaimagens.get(0).getImagepgm());
  1894.         FrameImagem frameresultado = new FrameImagem();
  1895.         frameresultado.iniciaFrameImagem(imagemhalf);
  1896.         this.imagemresultado = frameresultado;
  1897.         this.add(frameresultado);
  1898.     }
  1899.  
  1900.     private void clickPont2x3(java.awt.event.ActionEvent evt) {
  1901.         if (this.listaimagens.isEmpty()) {
  1902.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  1903.             return;
  1904.         }
  1905.         PontilhadoOrdenado pontilhado = new PontilhadoOrdenado();
  1906.         ImagemPGM imagemhalf = pontilhado.aplica2x3(this.listaimagens.get(0).getImagepgm());
  1907.         FrameImagem frameresultado = new FrameImagem();
  1908.         frameresultado.iniciaFrameImagem(imagemhalf);
  1909.         this.imagemresultado = frameresultado;
  1910.         this.add(frameresultado);
  1911.     }
  1912.  
  1913.     private void clickfloyd(java.awt.event.ActionEvent evt) {
  1914.         if (this.listaimagens.isEmpty()) {
  1915.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  1916.             return;
  1917.         }
  1918.         ErroDifusao errodedifusao = new ErroDifusao();
  1919.         ImagemPGM imagemhalf = errodedifusao.floydSteinberg(this.listaimagens.get(0).getImagepgm());
  1920.         FrameImagem frameresultado = new FrameImagem();
  1921.         frameresultado.iniciaFrameImagem(imagemhalf);
  1922.         this.imagemresultado = frameresultado;
  1923.         this.add(frameresultado);
  1924.     }
  1925.  
  1926.     private void clickrogers(java.awt.event.ActionEvent evt) {
  1927.         if (this.listaimagens.isEmpty()) {
  1928.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  1929.             return;
  1930.         }
  1931.         ErroDifusao errodedifusao = new ErroDifusao();
  1932.         ImagemPGM imagemhalf = errodedifusao.rogers(this.listaimagens.get(0).getImagepgm());
  1933.         FrameImagem frameresultado = new FrameImagem();
  1934.         frameresultado.iniciaFrameImagem(imagemhalf);
  1935.         this.imagemresultado = frameresultado;
  1936.         this.add(frameresultado);
  1937.     }
  1938.  
  1939.     private void clickJarvis(java.awt.event.ActionEvent evt) {
  1940.         if (this.listaimagens.isEmpty()) {
  1941.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  1942.             return;
  1943.         }
  1944.         ErroDifusao errodedifusao = new ErroDifusao();
  1945.         ImagemPGM imagemhalf = errodedifusao.jarvis(this.listaimagens.get(0).getImagepgm());
  1946.         FrameImagem frameresultado = new FrameImagem();
  1947.         frameresultado.iniciaFrameImagem(imagemhalf);
  1948.         this.imagemresultado = frameresultado;
  1949.         this.add(frameresultado);
  1950.     }
  1951.  
  1952.     private void clickStucki(java.awt.event.ActionEvent evt) {
  1953.         if (this.listaimagens.isEmpty()) {
  1954.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  1955.             return;
  1956.         }
  1957.         ErroDifusao errodedifusao = new ErroDifusao();
  1958.         ImagemPGM imagemhalf = errodedifusao.stucki(this.listaimagens.get(0).getImagepgm());
  1959.         FrameImagem frameresultado = new FrameImagem();
  1960.         frameresultado.iniciaFrameImagem(imagemhalf);
  1961.         this.imagemresultado = frameresultado;
  1962.         this.add(frameresultado);
  1963.     }
  1964.  
  1965.     private void clickSteveson(java.awt.event.ActionEvent evt) {
  1966.         if (this.listaimagens.isEmpty()) {
  1967.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  1968.             return;
  1969.         }
  1970.         ErroDifusao errodedifusao = new ErroDifusao();
  1971.         ImagemPGM imagemhalf = errodedifusao.stenvenson(this.listaimagens.get(0).getImagepgm());
  1972.         FrameImagem frameresultado = new FrameImagem();
  1973.         frameresultado.iniciaFrameImagem(imagemhalf);
  1974.         this.imagemresultado = frameresultado;
  1975.         this.add(frameresultado);
  1976.     }
  1977.  
  1978.     private void cliclkRetah1(java.awt.event.ActionEvent evt) {
  1979.         if (this.listaimagens.isEmpty()) {
  1980.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  1981.             return;
  1982.         }
  1983.         Mascara3x3 mascara = new Mascara3x3(this, -1, -1, -1, 2, 2, 2, -1, -1, -1);
  1984.         int a, b, c, d, e, f, g, h, i;
  1985.         a = Integer.parseInt(mascara.getCampo00());
  1986.         b = Integer.parseInt(mascara.getCampo01());
  1987.         c = Integer.parseInt(mascara.getCampo02());
  1988.         d = Integer.parseInt(mascara.getCampo10());
  1989.         e = Integer.parseInt(mascara.getCampo11());
  1990.         f = Integer.parseInt(mascara.getCampo12());
  1991.         g = Integer.parseInt(mascara.getCampo20());
  1992.         h = Integer.parseInt(mascara.getCampo21());
  1993.         i = Integer.parseInt(mascara.getCampo22());
  1994.         DeteccaodePontos reta45 = new DeteccaodePontos();
  1995.         reta45.inicializaMatriz(a, b, c, d, e, f, g, h, i);
  1996.         ImagemPGM imagemhalf = reta45.aplicaReta(this.listaimagens.get(0).getImagepgm());
  1997.         imagemhalf.setName("Retas orientada horizontal");
  1998.         FrameImagem frameresultado = new FrameImagem();
  1999.         frameresultado.iniciaFrameImagem(imagemhalf);
  2000.         this.imagemresultado = frameresultado;
  2001.         this.add(frameresultado);
  2002.     }
  2003.  
  2004.     private void cliclkRetah2(java.awt.event.ActionEvent evt) {
  2005.         if (this.listaimagens.isEmpty()) {
  2006.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  2007.             return;
  2008.         }
  2009.         Mascara3x3 mascara = new Mascara3x3(this, -1, -1, 2, -1, 2, -1, 2, -1, -1);
  2010.         int a, b, c, d, e, f, g, h, i;
  2011.         a = Integer.parseInt(mascara.getCampo00());
  2012.         b = Integer.parseInt(mascara.getCampo01());
  2013.         c = Integer.parseInt(mascara.getCampo02());
  2014.         d = Integer.parseInt(mascara.getCampo10());
  2015.         e = Integer.parseInt(mascara.getCampo11());
  2016.         f = Integer.parseInt(mascara.getCampo12());
  2017.         g = Integer.parseInt(mascara.getCampo20());
  2018.         h = Integer.parseInt(mascara.getCampo21());
  2019.         i = Integer.parseInt(mascara.getCampo22());
  2020.         DeteccaodePontos reta45 = new DeteccaodePontos();
  2021.         reta45.inicializaMatriz(a, b, c, d, e, f, g, h, i);
  2022.         ImagemPGM imagemhalf = reta45.aplicaReta(this.listaimagens.get(0).getImagepgm());
  2023.         imagemhalf.setName("Retas orientada 45 graus");
  2024.         FrameImagem frameresultado = new FrameImagem();
  2025.         frameresultado.iniciaFrameImagem(imagemhalf);
  2026.         this.imagemresultado = frameresultado;
  2027.         this.add(frameresultado);
  2028.     }
  2029.  
  2030.     private void cliclkRetah3(java.awt.event.ActionEvent evt) {
  2031.         if (this.listaimagens.isEmpty()) {
  2032.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  2033.             return;
  2034.         }
  2035.         Mascara3x3 mascara = new Mascara3x3(this, -1, 2, -1, -1, 2, -1, -1, 2, -1);
  2036.         int a, b, c, d, e, f, g, h, i;
  2037.         a = Integer.parseInt(mascara.getCampo00());
  2038.         b = Integer.parseInt(mascara.getCampo01());
  2039.         c = Integer.parseInt(mascara.getCampo02());
  2040.         d = Integer.parseInt(mascara.getCampo10());
  2041.         e = Integer.parseInt(mascara.getCampo11());
  2042.         f = Integer.parseInt(mascara.getCampo12());
  2043.         g = Integer.parseInt(mascara.getCampo20());
  2044.         h = Integer.parseInt(mascara.getCampo21());
  2045.         i = Integer.parseInt(mascara.getCampo22());
  2046.         DeteccaodePontos reta45 = new DeteccaodePontos();
  2047.         reta45.inicializaMatriz(a, b, c, d, e, f, g, h, i);
  2048.         ImagemPGM imagemhalf = reta45.aplicaReta(this.listaimagens.get(0).getImagepgm());
  2049.         imagemhalf.setName("Retas Verticais");
  2050.         FrameImagem frameresultado = new FrameImagem();
  2051.         frameresultado.iniciaFrameImagem(imagemhalf);
  2052.         this.imagemresultado = frameresultado;
  2053.         this.add(frameresultado);
  2054.     }
  2055.  
  2056.     private void cliclkRetah4(java.awt.event.ActionEvent evt) {
  2057.         if (this.listaimagens.isEmpty()) {
  2058.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  2059.             return;
  2060.         }
  2061.         Mascara3x3 mascara = new Mascara3x3(this, 2, -1, -1, -1, 2, -1, -1, -1, 2);
  2062.         int a, b, c, d, e, f, g, h, i;
  2063.         a = Integer.parseInt(mascara.getCampo00());
  2064.         b = Integer.parseInt(mascara.getCampo01());
  2065.         c = Integer.parseInt(mascara.getCampo02());
  2066.         d = Integer.parseInt(mascara.getCampo10());
  2067.         e = Integer.parseInt(mascara.getCampo11());
  2068.         f = Integer.parseInt(mascara.getCampo12());
  2069.         g = Integer.parseInt(mascara.getCampo20());
  2070.         h = Integer.parseInt(mascara.getCampo21());
  2071.         i = Integer.parseInt(mascara.getCampo22());
  2072.         DeteccaodePontos reta45 = new DeteccaodePontos();
  2073.         reta45.inicializaMatriz(a, b, c, d, e, f, g, h, i);
  2074.         ImagemPGM imagemhalf = reta45.aplicaReta(this.listaimagens.get(0).getImagepgm());
  2075.         imagemhalf.setName("Retas orientada 135 graus");
  2076.         FrameImagem frameresultado = new FrameImagem();
  2077.         frameresultado.iniciaFrameImagem(imagemhalf);
  2078.         this.imagemresultado = frameresultado;
  2079.         this.add(frameresultado);
  2080.     }
  2081.  
  2082.     private void clickPonto(java.awt.event.ActionEvent evt) {
  2083.         if (this.listaimagens.isEmpty()) {
  2084.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  2085.             return;
  2086.         }
  2087.         Mascara3x3 mascara = new Mascara3x3(this, -1, -1, -1, -1, 8, -1, -1, -1, -1);
  2088.         int a, b, c, d, e, f, g, h, i;
  2089.         a = Integer.parseInt(mascara.getCampo00());
  2090.         b = Integer.parseInt(mascara.getCampo01());
  2091.         c = Integer.parseInt(mascara.getCampo02());
  2092.         d = Integer.parseInt(mascara.getCampo10());
  2093.         e = Integer.parseInt(mascara.getCampo11());
  2094.         f = Integer.parseInt(mascara.getCampo12());
  2095.         g = Integer.parseInt(mascara.getCampo20());
  2096.         h = Integer.parseInt(mascara.getCampo21());
  2097.         i = Integer.parseInt(mascara.getCampo22());
  2098.         int limiar = Integer.parseInt(JOptionPane.showInputDialog(this, "Digite o valor do limirar entre 0 - 255"));
  2099.         DeteccaodePontos ponto = new DeteccaodePontos();
  2100.         ponto.inicializaMatriz(a, b, c, d, e, f, g, h, i);
  2101.         ImagemPGM imagemhalf = ponto.aplicaPonto(this.listaimagens.get(0).getImagepgm(), Math.abs(limiar));
  2102.         FrameImagem frameresultado = new FrameImagem();
  2103.         frameresultado.iniciaFrameImagem(imagemhalf);
  2104.         this.imagemresultado = frameresultado;
  2105.         this.add(frameresultado);
  2106.  
  2107.     }
  2108.  
  2109.     private void clickRoberts(java.awt.event.ActionEvent evt) {
  2110.         if (this.listaimagens.isEmpty()) {
  2111.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  2112.             return;
  2113.         }
  2114.         DeteccaodeBordas bordas = new DeteccaodeBordas();
  2115.         ImagemPGM imagemhalf = bordas.roberts(this.listaimagens.get(0).getImagepgm());
  2116.         FrameImagem frameresultado = new FrameImagem();
  2117.         frameresultado.iniciaFrameImagem(imagemhalf);
  2118.         this.imagemresultado = frameresultado;
  2119.         this.add(frameresultado);
  2120.     }
  2121.  
  2122.     private void clickRobertsCruzado(java.awt.event.ActionEvent evt) {
  2123.         if (this.listaimagens.isEmpty()) {
  2124.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  2125.             return;
  2126.         }
  2127.         DeteccaodeBordas bordas = new DeteccaodeBordas();
  2128.         ImagemPGM imagemhalf = bordas.robertsCruzado(this.listaimagens.get(0).getImagepgm());
  2129.         FrameImagem frameresultado = new FrameImagem();
  2130.         frameresultado.iniciaFrameImagem(imagemhalf);
  2131.         this.imagemresultado = frameresultado;
  2132.         this.add(frameresultado);
  2133.     }
  2134.  
  2135.     private void clickPrewittGx(java.awt.event.ActionEvent evt) {
  2136.         if (this.listaimagens.isEmpty()) {
  2137.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  2138.             return;
  2139.         }
  2140.         DeteccaodeBordas bordas = new DeteccaodeBordas();
  2141.         ImagemPGM imagemhalf = bordas.prewittGx(this.listaimagens.get(0).getImagepgm());
  2142.         FrameImagem frameresultado = new FrameImagem();
  2143.         frameresultado.iniciaFrameImagem(imagemhalf);
  2144.         this.imagemresultado = frameresultado;
  2145.         this.add(frameresultado);
  2146.     }
  2147.  
  2148.     private void clickPrewittGy(java.awt.event.ActionEvent evt) {
  2149.         if (this.listaimagens.isEmpty()) {
  2150.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  2151.             return;
  2152.         }
  2153.         DeteccaodeBordas bordas = new DeteccaodeBordas();
  2154.         ImagemPGM imagemhalf = bordas.prewittGy(this.listaimagens.get(0).getImagepgm());
  2155.         FrameImagem frameresultado = new FrameImagem();
  2156.         frameresultado.iniciaFrameImagem(imagemhalf);
  2157.         this.imagemresultado = frameresultado;
  2158.         this.add(frameresultado);
  2159.     }
  2160.  
  2161.     private void clickPrewitt(java.awt.event.ActionEvent evt) {
  2162.         if (this.listaimagens.isEmpty()) {
  2163.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  2164.             return;
  2165.         }
  2166.         DeteccaodeBordas bordas = new DeteccaodeBordas();
  2167.         ImagemPGM imagemhalf = bordas.prewitt(this.listaimagens.get(0).getImagepgm());
  2168.         FrameImagem frameresultado = new FrameImagem();
  2169.         frameresultado.iniciaFrameImagem(imagemhalf);
  2170.         this.imagemresultado = frameresultado;
  2171.         this.add(frameresultado);
  2172.     }
  2173.  
  2174.     private void clickSobel(java.awt.event.ActionEvent evt) {
  2175.         if (this.listaimagens.isEmpty()) {
  2176.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  2177.             return;
  2178.         }
  2179.         DeteccaodeBordas bordas = new DeteccaodeBordas();
  2180.         ImagemPGM imagemhalf = bordas.sobel(this.listaimagens.get(0).getImagepgm());
  2181.         FrameImagem frameresultado = new FrameImagem();
  2182.         frameresultado.iniciaFrameImagem(imagemhalf);
  2183.         this.imagemresultado = frameresultado;
  2184.         this.add(frameresultado);
  2185.     }
  2186.  
  2187.     private void clickSobelGx(java.awt.event.ActionEvent evt) {
  2188.         if (this.listaimagens.isEmpty()) {
  2189.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  2190.             return;
  2191.         }
  2192.         DeteccaodeBordas bordas = new DeteccaodeBordas();
  2193.         ImagemPGM imagemhalf = bordas.sobelGx(this.listaimagens.get(0).getImagepgm());
  2194.         FrameImagem frameresultado = new FrameImagem();
  2195.         frameresultado.iniciaFrameImagem(imagemhalf);
  2196.         this.imagemresultado = frameresultado;
  2197.         this.add(frameresultado);
  2198.     }
  2199.  
  2200.     private void clickSobelGy(java.awt.event.ActionEvent evt) {
  2201.         if (this.listaimagens.isEmpty()) {
  2202.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  2203.             return;
  2204.         }
  2205.         DeteccaodeBordas bordas = new DeteccaodeBordas();
  2206.         ImagemPGM imagemhalf = bordas.sobelGy(this.listaimagens.get(0).getImagepgm());
  2207.         FrameImagem frameresultado = new FrameImagem();
  2208.         frameresultado.iniciaFrameImagem(imagemhalf);
  2209.         this.imagemresultado = frameresultado;
  2210.         this.add(frameresultado);
  2211.     }
  2212.  
  2213.     private void clickKirsh(java.awt.event.ActionEvent evt) {
  2214.         if (this.listaimagens.isEmpty()) {
  2215.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  2216.             return;
  2217.         }
  2218.         DeteccaodeBordas bordas = new DeteccaodeBordas();
  2219.         ImagemPGM imagemhalf = bordas.kirsh(this.listaimagens.get(0).getImagepgm());
  2220.         FrameImagem frameresultado = new FrameImagem();
  2221.         frameresultado.iniciaFrameImagem(imagemhalf);
  2222.         this.imagemresultado = frameresultado;
  2223.         this.add(frameresultado);
  2224.     }
  2225.  
  2226.     private void clickRobison(java.awt.event.ActionEvent evt) {
  2227.         if (this.listaimagens.isEmpty()) {
  2228.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  2229.             return;
  2230.         }
  2231.         DeteccaodeBordas bordas = new DeteccaodeBordas();
  2232.         ImagemPGM imagemhalf = bordas.robison(this.listaimagens.get(0).getImagepgm());
  2233.         FrameImagem frameresultado = new FrameImagem();
  2234.         frameresultado.iniciaFrameImagem(imagemhalf);
  2235.         this.imagemresultado = frameresultado;
  2236.         this.add(frameresultado);
  2237.     }
  2238.  
  2239.     private void clickFreyChen(java.awt.event.ActionEvent evt) {
  2240.         if (this.listaimagens.isEmpty()) {
  2241.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  2242.             return;
  2243.         }
  2244.         DeteccaodeBordas bordas = new DeteccaodeBordas();
  2245.         ImagemPGM imagemhalf = bordas.freiChen(this.listaimagens.get(0).getImagepgm());
  2246.         FrameImagem frameresultado = new FrameImagem();
  2247.         frameresultado.iniciaFrameImagem(imagemhalf);
  2248.         this.imagemresultado = frameresultado;
  2249.         this.add(frameresultado);
  2250.     }
  2251.  
  2252.     private void clickLaplacianoh1(java.awt.event.ActionEvent evt) {
  2253.         if (this.listaimagens.isEmpty()) {
  2254.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  2255.             return;
  2256.         }
  2257.         DeteccaodeBordas bordas = new DeteccaodeBordas();
  2258.         ImagemPGM imagemhalf = bordas.laplacianoh1(this.listaimagens.get(0).getImagepgm());
  2259.         FrameImagem frameresultado = new FrameImagem();
  2260.         frameresultado.iniciaFrameImagem(imagemhalf);
  2261.         this.imagemresultado = frameresultado;
  2262.         this.add(frameresultado);
  2263.     }
  2264.  
  2265.     private void clickLaplacianoh2(java.awt.event.ActionEvent evt) {
  2266.         if (this.listaimagens.isEmpty()) {
  2267.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  2268.             return;
  2269.         }
  2270.         DeteccaodeBordas bordas = new DeteccaodeBordas();
  2271.         ImagemPGM imagemhalf = bordas.laplacianoh2(this.listaimagens.get(0).getImagepgm());
  2272.         FrameImagem frameresultado = new FrameImagem();
  2273.         frameresultado.iniciaFrameImagem(imagemhalf);
  2274.         this.imagemresultado = frameresultado;
  2275.         this.add(frameresultado);
  2276.     }
  2277.  
  2278.     private void clickLimializacaoMedia(java.awt.event.ActionEvent evt) {
  2279.         if (this.listaimagens.isEmpty()) {
  2280.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  2281.             return;
  2282.         }
  2283.         Limiarizacao limializacao = new Limiarizacao();
  2284.         ImagemPGM imagemhalf = limializacao.aplicaLimiarMedia(this.listaimagens.get(0).getImagepgm());
  2285.         FrameImagem frameresultado = new FrameImagem();
  2286.         frameresultado.iniciaFrameImagem(imagemhalf);
  2287.         this.imagemresultado = frameresultado;
  2288.         this.add(frameresultado);
  2289.     }
  2290.  
  2291.     private void clickLimializacaoMediana(java.awt.event.ActionEvent evt) {
  2292.         if (this.listaimagens.isEmpty()) {
  2293.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  2294.             return;
  2295.         }
  2296.         Limiarizacao limializacao = new Limiarizacao();
  2297.         ImagemPGM imagemhalf = limializacao.aplicaLimiarMediana(this.listaimagens.get(0).getImagepgm());
  2298.         FrameImagem frameresultado = new FrameImagem();
  2299.         frameresultado.iniciaFrameImagem(imagemhalf);
  2300.         this.imagemresultado = frameresultado;
  2301.         this.add(frameresultado);
  2302.     }
  2303.  
  2304.     private void clickLimializacaoMaxmin(java.awt.event.ActionEvent evt) {
  2305.         if (this.listaimagens.isEmpty()) {
  2306.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  2307.             return;
  2308.         }
  2309.         Limiarizacao limializacao = new Limiarizacao();
  2310.         ImagemPGM imagemhalf = limializacao.aplicaLimiarMaxmin(this.listaimagens.get(0).getImagepgm());
  2311.         FrameImagem frameresultado = new FrameImagem();
  2312.         frameresultado.iniciaFrameImagem(imagemhalf);
  2313.         this.imagemresultado = frameresultado;
  2314.         this.add(frameresultado);
  2315.     }
  2316.  
  2317.     private void clickLimializacaoNiblack(java.awt.event.ActionEvent evt) {
  2318.         if (this.listaimagens.isEmpty()) {
  2319.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  2320.             return;
  2321.         }
  2322.         double k = 1;
  2323.         try {
  2324.             k = Double.parseDouble(JOptionPane.showInputDialog("Digite um valor pra 'K'"));
  2325.         } catch (Exception e) {
  2326.             JOptionPane.showMessageDialog(this, "Erro ao pegar o valor de K");
  2327.         }
  2328.         Limiarizacao limializacao = new Limiarizacao();
  2329.         ImagemPGM imagemhalf = limializacao.aplicaLimiarNiblack(this.listaimagens.get(0).getImagepgm(), k);
  2330.         FrameImagem frameresultado = new FrameImagem();
  2331.         frameresultado.iniciaFrameImagem(imagemhalf);
  2332.         this.imagemresultado = frameresultado;
  2333.         this.add(frameresultado);
  2334.     }
  2335.  
  2336.     private void clickGerarHistograma(java.awt.event.ActionEvent evt) {
  2337.         if (this.listaimagens.isEmpty()) {
  2338.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  2339.             return;
  2340.         }
  2341.         Histograma histograma = new Histograma(this.listaimagens.get(0).getImagepgm());
  2342.         try {
  2343.             desenhaGracfico(histograma);
  2344.         } catch (IOException e) {
  2345.             System.out.println("Deu merda");
  2346.         }
  2347.  
  2348.     }
  2349.  
  2350.     private void clickEqualizar(java.awt.event.ActionEvent evt) {
  2351.         if (this.listaimagens.isEmpty()) {
  2352.             JOptionPane.showMessageDialog(this, "É necessário pelo menos uma imagem aberta!");
  2353.             return;
  2354.         }
  2355.         EqualizarHistograma equalizar = new EqualizarHistograma();
  2356.         ImagemPGM imagemhalf = equalizar.equalizarHistograma(this.listaimagens.get(0).getImagepgm());
  2357.         FrameImagem frameresultado = new FrameImagem();
  2358.         frameresultado.iniciaFrameImagem(imagemhalf);
  2359.         this.imagemresultado = frameresultado;
  2360.         this.add(frameresultado);
  2361.     }
  2362.  
  2363.     private void desenhaGracfico(Histograma histograma) throws FileNotFoundException, IOException {
  2364.         OutputStream arquivo = new FileOutputStream("grafico.jpeg");
  2365.         ChartUtilities.writeChartAsJPEG(arquivo, histograma.gerarGrafico(), 550, 400);
  2366.         arquivo.close();
  2367.         BufferedImage imagem = ImageIO.read(new File("grafico.jpeg"));
  2368.         FrameImagem grafico = new FrameImagem();
  2369.         grafico.iniciarFrameGrafico(imagem);
  2370.         this.add(grafico);
  2371.  
  2372.     }
  2373.  
  2374.     private void clicksepia(java.awt.event.ActionEvent evt) {
  2375.         if (this.imagem == null) {
  2376.             JOptionPane.showMessageDialog(this, "Abra uma imagem!");
  2377.         } else {
  2378.             int sep = 30;
  2379.             try {
  2380.                 sep = Integer.parseInt(JOptionPane.showInputDialog("Digite o valor de intensidade do sepia 0 - 255"));
  2381.             } catch (Exception ex) {
  2382.                 JOptionPane.showMessageDialog(this, "Digite apenas valores inteiros de 0 a 255");
  2383.             }
  2384.  
  2385.             BufferedImage img = (BufferedImage) this.imagem;
  2386.             Sepia sepia = new Sepia(img);
  2387.             Image imagemsepia = (Image) sepia.sepia(sep);
  2388.             this.resultado = imagemsepia;
  2389.             FrameImagem frame = new FrameImagem();
  2390.             frame.iniciaFrameImagem(imagemsepia);
  2391.             this.add(frame);
  2392.         }
  2393.     }
  2394.  
  2395.     private void clickNegativo(java.awt.event.ActionEvent evt) {
  2396.         if (this.imagem == null) {
  2397.             JOptionPane.showMessageDialog(this, "Abra uma imagem!");
  2398.         } else {
  2399.             BufferedImage img = (BufferedImage) this.imagem;
  2400.             Negativo negativo = new Negativo(img);
  2401.             img = negativo.aplicaNegativo();
  2402.             Image imagemnegativo = (Image) img;
  2403.             this.resultado = imagemnegativo;
  2404.             FrameImagem frame = new FrameImagem();
  2405.             frame.iniciaFrameImagem(imagemnegativo);
  2406.             this.add(frame);
  2407.         }
  2408.     }
  2409.  
  2410.     private void clickCinza(java.awt.event.ActionEvent evt) {
  2411.         if (this.imagem == null) {
  2412.             JOptionPane.showMessageDialog(this, "Abra uma imagem!");
  2413.         } else {
  2414.             BufferedImage img = (BufferedImage) this.imagem;
  2415.             Cinza cinza = new Cinza(img);
  2416.             img = cinza.aplicaCinza();
  2417.             Image imagemcinza = (Image) img;
  2418.             this.resultado = imagemcinza;
  2419.             FrameImagem frame = new FrameImagem();
  2420.             frame.iniciaFrameImagem(imagemcinza);
  2421.             this.add(frame);
  2422.         }
  2423.     }
  2424.  
  2425.     private void clickDesenho(java.awt.event.ActionEvent evt) {
  2426.         if (this.imagem == null) {
  2427.             JOptionPane.showMessageDialog(this, "Abra uma imagem!");
  2428.         } else {
  2429.             BufferedImage img = (BufferedImage) this.imagem;
  2430.             Desenho desenho = new Desenho(img);
  2431.             img = desenho.desenhaImagem(90);
  2432.             Image imagemdesenho = (Image) img;
  2433.             this.resultado = imagemdesenho;
  2434.             FrameImagem frame = new FrameImagem();
  2435.             frame.iniciaFrameImagem(imagemdesenho);
  2436.             this.add(frame);
  2437.         }
  2438.     }
  2439.  
  2440.     private void clickTrimage(java.awt.event.ActionEvent evt) {
  2441.         if (this.imagem == null) {
  2442.             JOptionPane.showMessageDialog(this, "Abra uma imagem!");
  2443.         } else {
  2444.             BufferedImage img = (BufferedImage) this.imagem;
  2445.             TresCores tres = new TresCores(img);
  2446.             img = tres.aplicaFiltro1();
  2447.             Image imagemefeito = (Image) img;
  2448.             this.resultado = imagemefeito;
  2449.             FrameImagem frame = new FrameImagem();
  2450.             frame.iniciaFrameImagem(imagemefeito);
  2451.             this.add(frame);
  2452.         }
  2453.     }
  2454.  
  2455.     private void clickTrimage2(java.awt.event.ActionEvent evt) {
  2456.         if (this.imagem == null) {
  2457.             JOptionPane.showMessageDialog(this, "Abra uma imagem!");
  2458.         } else {
  2459.             BufferedImage img = (BufferedImage) this.imagem;
  2460.             TresCores tres = new TresCores(img);
  2461.             img = tres.aplicaFiltro2();
  2462.             Image imagemefeito = (Image) img;
  2463.             this.resultado = imagemefeito;
  2464.             FrameImagem frame = new FrameImagem();
  2465.             frame.iniciaFrameImagem(imagemefeito);
  2466.             this.add(frame);
  2467.         }
  2468.     }
  2469.  
  2470.     private void clickMoldura(java.awt.event.ActionEvent evt) {
  2471.         if (this.imagem == null) {
  2472.             JOptionPane.showMessageDialog(this, "Abra uma imagem!");
  2473.         } else {
  2474.             BufferedImage img = (BufferedImage) this.imagem;
  2475.             Moldura mod = null;
  2476.             try{
  2477.                 mod = new Moldura(img);
  2478.             }catch(Exception e){
  2479.                 JOptionPane.showMessageDialog(this, "Deu problema!");
  2480.             }
  2481.             img = mod.aplicaMoldura();
  2482.             Image imagemefeito = (Image) img;
  2483.             this.resultado = imagemefeito;
  2484.             FrameImagem frame = new FrameImagem();
  2485.             frame.iniciaFrameImagem(imagemefeito);
  2486.             this.add(frame);
  2487.         }
  2488.     }
  2489.     private void clickBolinhas(java.awt.event.ActionEvent evt) {
  2490.         if (this.imagem == null) {
  2491.             JOptionPane.showMessageDialog(this, "Abra uma imagem!");
  2492.         } else {
  2493.             BufferedImage img = (BufferedImage) this.imagem;
  2494.             Coracao mod = null;
  2495.             try{
  2496.                 mod = new Coracao(img);
  2497.             }catch(Exception e){
  2498.                 JOptionPane.showMessageDialog(this, "Deu problema!");
  2499.             }
  2500.             img = mod.aplicaEfeito();
  2501.             Image imagemefeito = (Image) img;
  2502.             this.resultado = imagemefeito;
  2503.             FrameImagem frame = new FrameImagem();
  2504.             frame.iniciaFrameImagem(imagemefeito);
  2505.             this.add(frame);
  2506.         }
  2507.     }
  2508.    
  2509.        private void clickRedeFocus(java.awt.event.ActionEvent evt) {
  2510.         if (this.imagem == null) {
  2511.             JOptionPane.showMessageDialog(this, "Abra uma imagem!");
  2512.         } else {
  2513.             BufferedImage img = (BufferedImage) this.imagem;
  2514.             EfeitoRed mod = null;
  2515.             try{
  2516.                 mod = new EfeitoRed(img);
  2517.             }catch(Exception e){
  2518.                 JOptionPane.showMessageDialog(this, "Deu problema!");
  2519.             }
  2520.             img = mod.aplicaEfeito();
  2521.             Image imagemefeito = (Image) img;
  2522.             this.resultado = imagemefeito;
  2523.             FrameImagem frame = new FrameImagem();
  2524.             frame.iniciaFrameImagem(imagemefeito);
  2525.             this.add(frame);
  2526.         }
  2527.     }
  2528.     private void usarJPG(java.awt.event.ActionEvent evt){
  2529.         this.imagem = this.resultado;
  2530.     }
  2531.  
  2532.     //Método main.
  2533.  
  2534.     public static void main(String[] args) {
  2535.         MainGui rum = new MainGui();
  2536.     }
  2537. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement