List of usage examples for org.opencv.core Mat Mat
public Mat()
From source file:com.wallerlab.processing.utilities.ImageUtils.java
License:BSD License
public static Mat toMat(Bitmap bmp) { Mat mat = new Mat(); Utils.bitmapToMat(bmp, mat); return mat; }
From source file:Comun.Imagen.java
public String dividirImagen(String nombreCarpeta) { StringBuilder SB = new StringBuilder(); //Crea la carpeta donde alojar las imagenes this.nombreCarpeta = nombreCarpeta; File carpeta = new File(nombreCarpeta); if (carpeta.mkdir()) { Mat imgAux = new Mat(); //Convertir la imagen en escala de grises a binario threshold(imagen, imgAux, 128, 255, THRESH_BINARY | THRESH_OTSU); //Dibuja los bordes double umbral = 100; Canny(imgAux, imgAux, umbral, umbral * 2); //Lista que guarda los puntos de los contornos LinkedList<MatOfPoint> contornos = new LinkedList<>(); Mat jerarquia = new Mat(); //Detecto los contornos findContours(imgAux, contornos, jerarquia, RETR_TREE, CHAIN_APPROX_SIMPLE); Rect contorno;//from w ww . java 2s. co m if (!contornos.isEmpty()) { SB.append("Se han encontrado ").append(contornos.size()).append(" contornos -"); double areaProm = 0; for (int i = 0; i < contornos.size(); i++) { contorno = boundingRect(contornos.get(i)); areaProm += contorno.area(); } //Asigna que para ser un contorno valido debe ser mayor al 10% del segundo mayor areaProm = (areaProm / contornos.size()) * 0.25; ArrayList<Rect> contornosFiltrados = new ArrayList<>(); //Guarda las letras detectadas for (int i = 0; i < contornos.size(); i++) { contorno = boundingRect(contornos.get(i)); //Verifica que supere el limite if (contorno.area() > areaProm) { contornosFiltrados.add(contorno); } } //Ordeno los contornos de mayor a menor Mergesort merge = new Mergesort(contornosFiltrados); merge.ordenar(); contornosFiltrados = merge.getV(); //Filtro solo los contornos que no se superponen con otro ArrayList<Rect> contornosFinal = new ArrayList<>(); boolean bandera = false; for (Rect recta : contornosFiltrados) { for (Rect c : contornosFinal) { if (c.contains(recta.tl()) || c.contains(recta.br())) { bandera = true; break; } } if (!bandera) { //Agrego el contorno a la lista final de contornos contornosFinal.add(recta); //Guardo la imagen en la carpeta this.guardarImagen(new Mat(imagen, recta), contornosFinal.size()); //La marca en la imagen principal rectangle(imagen, new Point(recta.x, recta.y), new Point(recta.x + recta.width, recta.y + recta.height), new Scalar(0, 255, 0)); } bandera = false; } SB.append("Contornos Validos: ").append(contornosFinal.size()); } else { SB.append("No se ha encontrado ningun contorno"); } } else { SB.append("No se pudo crear la carpeta"); } this.guardarImagen(imagen, 0); return SB.toString(); }
From source file:ConfOpenCV_Java.ConfOpenCV_Java.java
/** * @param args the command line arguments *///from www . j a v a 2 s . c om public static void main(String[] args) { System.loadLibrary(Core.NATIVE_LIBRARY_NAME); System.out.println("Welcome to OpenCV " + Core.VERSION); String outputFile = "mivideo.avi"; VideoCapture vc = new VideoCapture(0); System.out.println("fps= " + Videoio.CAP_PROP_FPS); //vc.set(5, 50); //System.out.println(vc.set(3, 1280)); //vc.set(4, 720); double fps = 30; System.out.println(fps); Size frameSize = new Size((int) vc.get(Videoio.CV_CAP_PROP_FRAME_WIDTH), (int) vc.get(Videoio.CV_CAP_PROP_FRAME_HEIGHT)); System.out.println(frameSize); VideoWriter vw = new VideoWriter(outputFile, VideoWriter.fourcc('X', '2', '6', '4'), fps, frameSize, true); //System.out.println(VideoWriter.fourcc('X', '2', '6', '4')); //System.out.println(vw.isOpened()); Mat frame = new Mat(); //para cargar fotos //Imgcodecs.imread(outputFile) //Imgcodecs.imwrite(outputFile, m); int numFramesRemaining = 5 * (int) fps; NewJFrame ventana = new NewJFrame(); ventana.setVisible(true); g = ventana.getjPanel1().getGraphics(); ventana.pack(); ventana.setVisible(true); while (vc.read(frame) && numFramesRemaining > 0) { vw.write(frame); mostrarImagen(frame); numFramesRemaining--; } vw.release(); vc.release(); ventana.dispose(); }
From source file:contador_de_moedas.Reconhecimento.java
public Mat CalculaHistograma(Mat mask, Mat img_Original) { // Converte para um tipo de imagem com canais separados List<Mat> imagesList = new ArrayList<>(); imagesList.add(img_Original);// w w w . j ava 2 s .c om // Parametros do calcHist Mat histograma = new Mat(); int h_bins = 30; int s_bins = 32; MatOfInt mHistSize = new MatOfInt(h_bins, s_bins); MatOfFloat mRanges = new MatOfFloat(0, 179, 0, 255); MatOfInt mChannels = new MatOfInt(0, 1); // Calcula o histograma Imgproc.calcHist(imagesList, mChannels, mask, histograma, mHistSize, mRanges, false); // Normalizao necessria para ajustar valores Core.normalize(histograma, histograma, 0, 255, Core.NORM_MINMAX, -1, new Mat()); return (histograma); }
From source file:contador_de_moedas.Segmentacao.java
private Mat Binarizar(Mat imgOriginal) { Mat Cinza = new Mat(); Mat Binarizada = new Mat(); // convert to grayscale Imgproc.cvtColor(imgOriginal, Cinza, Imgproc.COLOR_BGR2GRAY); //Binarizacao de imagem Imgproc.adaptiveThreshold(Cinza, Binarizada, 255, Imgproc.ADAPTIVE_THRESH_MEAN_C, Imgproc.THRESH_BINARY_INV, 15, 20);//from ww w .j a va 2s . c om return (Binarizada); }
From source file:contador_de_moedas.Segmentacao.java
/** * Apply Canny/* w w w . j a v a 2 s .c om*/ * * @param img the current frame * @return an image elaborated with Canny */ private Mat doCanny(Mat img) { // inicia Mat grayImage = new Mat(); Mat detectedEdges = new Mat(); // Reduzir o rudo com um kernel 3x3 Imgproc.blur(grayImage, detectedEdges, new Size(3, 3)); //Detector canny, com relao de menor: limite de superior de 3: 1 Imgproc.Canny(detectedEdges, detectedEdges, this.threshold.getValue(), this.threshold.getValue() * 3); //Usando Canny e exibindo o resultadosada como uma mscara. Mat dest = new Mat(); img.copyTo(dest, detectedEdges); return dest; }
From source file:cubesolversimulator.VisualInputForm.java
private void getContour() { Mat dilate = Imgproc.getStructuringElement(Imgproc.MORPH_RECT, new Size(7, 7)); Imgproc.dilate(edge, edge, dilate);/*from ww w .j a va2 s.c o m*/ Imgproc.dilate(edge, edge, dilate); Highgui.imwrite("dilate.jpg", edge); List<MatOfPoint> contours = new ArrayList<>(); Imgproc.findContours(edge, contours, new Mat(), Imgproc.RETR_LIST, Imgproc.CHAIN_APPROX_SIMPLE); Imgproc.drawContours(contour, contours, -1, new Scalar(255, 255, 255)); Highgui.imwrite("Contour.jpg", contour); img4 = new JLabel(""); img4.setSize(jPanel7.getSize()); image4 = new ImageIcon(new ImageIcon("D:\\Project_work\\CubeSolverSimulator\\dilate.jpg").getImage() .getScaledInstance(img4.getWidth(), img4.getHeight(), Image.SCALE_FAST)); img4.setIcon(image4); img4.repaint(); jPanel7.add(img4); jPanel7.repaint(); findRect(contours); }
From source file:cv.recon.controller.OutputDisplayController.java
License:Open Source License
@Override public void initialize(URL url, ResourceBundle rb) { fgMask = new Mat(); output = new Mat(); kernel = Imgproc.getStructuringElement(Imgproc.MORPH_ELLIPSE, new Size(10, 10)); }
From source file:cv.recon.controller.RootLayoutController.java
License:Open Source License
@Override public void initialize(URL url, ResourceBundle rb) { vid = new VideoCapture(); src = new Mat(); initInputDisplay();//from w w w.j av a2 s .c o m initOutputDisplay(); initChart(); }
From source file:cv.recon.util.CannyDetector.java
License:Open Source License
/** * Apply Canny detector to Mat.//from w w w.ja v a 2s. com * @param src Input Mat * @param dst Output Mat */ public void detect(Mat src, Mat dst) { Mat src_gray = new Mat(); Mat detected_edges = new Mat(); Imgproc.cvtColor(src, src_gray, Imgproc.COLOR_RGB2GRAY); Imgproc.blur(src_gray, detected_edges, new Size(3, 3)); Imgproc.Canny(detected_edges, detected_edges, lowThreshold, lowThreshold * ratio, kernel_size, true); dst.setTo(new Scalar(0)); src.copyTo(dst, detected_edges); }