List of usage examples for org.opencv.imgproc Imgproc cvtColor
public static void cvtColor(Mat src, Mat dst, int code, int dstCn)
From source file:com.davidmiguel.gobees.monitoring.camera.CameraFrame.java
License:Open Source License
/** * Returns RGBA Mat with the frame./*ww w . ja v a2s. com*/ * * @return RGBA Mat. */ public Mat rgba() { if (!rgbaConverted) { Imgproc.cvtColor(yuvFrameData, rgba, Imgproc.COLOR_YUV2BGR_NV12, 4); rgbaConverted = true; } return rgba; }
From source file:com.dtcristo.virtucane.ImageProcessor.java
License:Apache License
private Bitmap processFrame(byte[] data, Camera camera) { count++;/*from w w w.ja v a 2s .c o m*/ Log.i(TAG, "Processing frame No. " + count); mSaveFrame = false; mYuv.put(0, 0, data); Imgproc.cvtColor(mYuv, mRgba, Imgproc.COLOR_YUV420sp2RGB, 4); Bitmap bmp = Bitmap.createBitmap(mRgba.cols(), mRgba.rows(), Bitmap.Config.ARGB_8888); if (Utils.matToBitmap(mRgba, bmp)) { Log.i(TAG, "Utils.matToBitmap()"); return bmp; } bmp.recycle(); return null; }
From source file:com.example.sarthuak.opencv.MainActivity.java
public Mat onCameraFrame(CvCameraViewFrame inputFrame) { // TODO Auto-generated method stub final int viewMode = mViewMode; switch (viewMode) { case VIEW_MODE_RGBA: // input frame has RBGA format mRgba = inputFrame.rgba();/*from w ww. j a v a2 s . c o m*/ break; case VIEW_MODE_CANNY: // input frame has gray scale format mRgba = inputFrame.rgba(); Imgproc.Canny(inputFrame.gray(), mRgbaF, 80, 100); Imgproc.cvtColor(mRgbaF, mRgba, Imgproc.COLOR_GRAY2RGBA, 4); break; case VIEW_MODE_ocr: startActivity(new Intent(this, ScanLicensePlateActivity.class)); break; case VIEW_MODE_new: Mat mRgba; mRgba = inputFrame.rgba(); drawing = mRgba.clone(); mRgbaT = drawing; Imgproc.cvtColor(drawing, mRgbaT, Imgproc.COLOR_BGR2GRAY); org.opencv.core.Size s = new Size(1, 1); Imgproc.GaussianBlur(mRgbaT, mRgbaT, s, 0, 0); Imgproc.Canny(mRgbaT, mRgbaT, 100, 255); Mat element = Imgproc.getStructuringElement(Imgproc.MORPH_RECT, new Size(5, 5)); Imgproc.dilate(mRgbaT, mRgbaT, element); List<MatOfPoint> contours = new ArrayList<>(); Imgproc.findContours(drawing, contours, hierarchy, Imgproc.RETR_EXTERNAL, Imgproc.CHAIN_APPROX_SIMPLE, new Point(0, 0)); double maxArea = -1; int maxAreaIdx = -1; for (int idx = 0; idx < contours.size(); idx++) { Mat contour = contours.get(idx); double contourarea = Imgproc.contourArea(contour); if (contourarea > maxArea) { maxArea = contourarea; maxAreaIdx = idx; } } Imgproc.drawContours(mRgba, contours, maxAreaIdx, new Scalar(255, 0, 0), 5); } return mRgba; // This function must return }
From source file:com.joravasal.keyface.EigenFacesActivity.java
License:Open Source License
@Override public void onCreate(Bundle savedInstanceState) { Log.i("eigenFacesActivity::", "OnCreate"); super.onCreate(savedInstanceState); setContentView(R.layout.eigenfaces); setTitle("Eigenfaces"); Mat aver = ((PCAfaceRecog) KeyFaceActivity.recogAlgorithm).getAverage(); Mat faces = ((PCAfaceRecog) KeyFaceActivity.recogAlgorithm).getEigenFaces(); int size = new Integer(KeyFaceActivity.prefs.getString("savedFaceSize", "200")); Mat aux = new Mat(); aver = aver.reshape(1, size);//from www . j a v a 2 s. com //aver.convertTo(aux, ); aver = toGrayscale(aver); average = Bitmap.createBitmap(size, size, Bitmap.Config.ARGB_8888); Imgproc.cvtColor(aver, aux, Imgproc.COLOR_GRAY2RGBA, 4); Utils.matToBitmap(aux, average); LinearLayout layout = (LinearLayout) findViewById(id.eigenFacesHorizontalLayout); TextView avrgImgTV = new TextView(getApplicationContext()); avrgImgTV.setText("Average image:"); avrgImgTV.setPadding(5, 10, 10, 20); avrgImgTV.setGravity(Gravity.CENTER); TextView eigenfacesImgsTV = new TextView(getApplicationContext()); eigenfacesImgsTV.setText("Eigenfaces:"); eigenfacesImgsTV.setPadding(5, 10, 10, 20); eigenfacesImgsTV.setGravity(Gravity.CENTER); ImageView imgV = new ImageView(getApplicationContext()); imgV.setClickable(false); imgV.setVisibility(0); imgV.setPadding(0, 10, 10, 20); imgV.setImageBitmap(average); layout.addView(avrgImgTV); layout.addView(imgV); layout.addView(eigenfacesImgsTV); LinkedList<ImageView> variables = new LinkedList<ImageView>(); eigenfacesList = new LinkedList<Bitmap>(); for (int i = 0; i < faces.rows(); i++) { variables.add(new ImageView(getApplicationContext())); eigenfacesList.add(Bitmap.createBitmap(size, size, Bitmap.Config.ARGB_8888)); aux = new Mat(); aux = faces.row(i).reshape(1, size); aux = toGrayscale(aux); Mat auxGreyC4 = new Mat(); Imgproc.cvtColor(aux, auxGreyC4, Imgproc.COLOR_GRAY2RGBA, 4); Utils.matToBitmap(auxGreyC4, eigenfacesList.get(i)); variables.get(i).setClickable(false); variables.get(i).setVisibility(0); variables.get(i).setPadding(0, 10, 10, 20); variables.get(i).setImageBitmap(eigenfacesList.get(i)); layout.addView(variables.get(i)); } Button save = (Button) findViewById(id.saveEigenfacesB); save.setOnClickListener(this); }
From source file:com.joravasal.keyface.FindFacesView.java
License:Open Source License
private void addFaceToDB(Mat mRGBA, Rect r, int numFaces) { //Code to put the face in a bitmap and save it in the phone memory Mat aux = mRGBA.submat(r);//from w w w . jav a 2 s . c om int saveSize = new Integer(KeyFaceActivity.prefs.getString("savedFaceSize", "200")); //Mat aux2 = new Mat(new Size(saveSize, saveSize), aux.type()); Imgproc.resize(aux, aux, new Size(saveSize, saveSize)); final Bitmap bm = Bitmap.createBitmap(saveSize, saveSize, Bitmap.Config.ARGB_8888); Imgproc.cvtColor(aux, aux, Imgproc.COLOR_GRAY2RGBA, 4); Utils.matToBitmap(aux, bm); try { //Check if our folder exists (where all the photos are) File directory = new File(Environment.getExternalStorageDirectory(), KeyFaceActivity.globalappcontext.getString(R.string.app_dir)); if (!directory.exists() && !directory.mkdirs()) { throw new IOException("Path to app directory could not be opened or created."); } //save image String lfile = Environment.getExternalStorageDirectory().getPath() + "/" + KeyFaceActivity.globalappcontext.getString(R.string.app_dir) + "/Face" + numFaces + ".png"; OutputStream out = new FileOutputStream(lfile); bm.compress(Bitmap.CompressFormat.PNG, 100, out); out.flush(); out.close(); } catch (IOException e) { System.err.println(e.getMessage()); } }
From source file:com.wallerlab.compcellscope.calcDPCTask.java
License:BSD License
protected Long doInBackground(Mat... matrix_list) { //int count = urls.length; Mat in1 = matrix_list[0];// ww w . j a v a2 s . c o m Mat in2 = matrix_list[1]; Mat outputMat = matrix_list[2]; Mat Mat1 = new Mat(in1.width(), in1.height(), in1.type()); Mat Mat2 = new Mat(in2.width(), in2.height(), in2.type()); in1.copyTo(Mat1); in2.copyTo(Mat2); Imgproc.cvtColor(Mat1, Mat1, Imgproc.COLOR_RGBA2GRAY, 1); Imgproc.cvtColor(Mat2, Mat2, Imgproc.COLOR_RGBA2GRAY, 1); Mat output = new Mat(Mat1.width(), Mat1.height(), CvType.CV_8UC4); Mat dpcSum = new Mat(Mat1.width(), Mat1.height(), CvType.CV_32FC1); Mat dpcDifference = new Mat(Mat1.width(), Mat1.height(), CvType.CV_32FC1); Mat dpcImgF = new Mat(Mat1.width(), Mat1.height(), CvType.CV_32FC1); /* Log.d(TAG,String.format("Mat1 format is %.1f-%.1f, type: %d",Mat1.size().width,Mat1.size().height,Mat1.type())); Log.d(TAG,String.format("Mat2 format is %.1f-%.1f, type: %d",Mat2.size().width,Mat2.size().height,Mat2.type())); */ // Convert to Floats Mat1.convertTo(Mat1, CvType.CV_32FC1); Mat2.convertTo(Mat2, CvType.CV_32FC1); Core.add(Mat1, Mat2, dpcSum); Core.subtract(Mat1, Mat2, dpcDifference); Core.divide(dpcDifference, dpcSum, dpcImgF); Core.add(dpcImgF, new Scalar(1.0), dpcImgF); // Normalize to 0-2.0 Core.multiply(dpcImgF, new Scalar(110), dpcImgF); // Normalize to 0-255 dpcImgF.convertTo(output, CvType.CV_8UC1); // Convert back into RGB Imgproc.cvtColor(output, output, Imgproc.COLOR_GRAY2RGBA, 4); dpcSum.release(); dpcDifference.release(); dpcImgF.release(); Mat1.release(); Mat2.release(); Mat maskedImg = Mat.zeros(output.rows(), output.cols(), CvType.CV_8UC4); int radius = maskedImg.width() / 2 + 25; Core.circle(maskedImg, new Point(maskedImg.width() / 2, maskedImg.height() / 2), radius, new Scalar(255, 255, 255), -1, 8, 0); output.copyTo(outputMat, maskedImg); output.release(); maskedImg.release(); return null; }
From source file:com.wallerlab.compcellscope.MultiModeViewActivity.java
License:BSD License
public Mat calcDPC(Mat in1, Mat in2, Mat out) { Mat Mat1 = new Mat(in1.width(), in1.height(), in1.type()); Mat Mat2 = new Mat(in2.width(), in2.height(), in2.type()); in1.copyTo(Mat1);/*from w ww .j a v a 2 s. com*/ in2.copyTo(Mat2); Imgproc.cvtColor(Mat1, Mat1, Imgproc.COLOR_RGBA2GRAY, 1); Imgproc.cvtColor(Mat2, Mat2, Imgproc.COLOR_RGBA2GRAY, 1); Mat output = new Mat(Mat1.width(), Mat1.height(), CvType.CV_8UC4); Mat dpcSum = new Mat(Mat1.width(), Mat1.height(), CvType.CV_32FC1); Mat dpcDifference = new Mat(Mat1.width(), Mat1.height(), CvType.CV_32FC1); Mat dpcImgF = new Mat(Mat1.width(), Mat1.height(), CvType.CV_32FC1); /* Log.d(TAG,String.format("Mat1 format is %.1f-%.1f, type: %d",Mat1.size().width,Mat1.size().height,Mat1.type())); Log.d(TAG,String.format("Mat2 format is %.1f-%.1f, type: %d",Mat2.size().width,Mat2.size().height,Mat2.type())); */ // Convert to Floats Mat1.convertTo(Mat1, CvType.CV_32FC1); Mat2.convertTo(Mat2, CvType.CV_32FC1); Core.add(Mat1, Mat2, dpcSum); Core.subtract(Mat1, Mat2, dpcDifference); Core.divide(dpcDifference, dpcSum, dpcImgF); Core.add(dpcImgF, new Scalar(1.0), dpcImgF); // Normalize to 0-2.0 Core.multiply(dpcImgF, new Scalar(110), dpcImgF); // Normalize to 0-255 dpcImgF.convertTo(output, CvType.CV_8UC1); // Convert back into RGB Imgproc.cvtColor(output, output, Imgproc.COLOR_GRAY2RGBA, 4); dpcSum.release(); dpcDifference.release(); dpcImgF.release(); Mat1.release(); Mat2.release(); Mat maskedImg = Mat.zeros(output.rows(), output.cols(), CvType.CV_8UC4); int radius = maskedImg.width() / 2 + 25; Core.circle(maskedImg, new Point(maskedImg.width() / 2, maskedImg.height() / 2), radius, new Scalar(255, 255, 255), -1, 8, 0); output.copyTo(out, maskedImg); output.release(); maskedImg.release(); return out; }
From source file:edu.sust.cse.analysis.news.NewsAnalysis.java
public static void main(String[] args) throws IOException { // Mat inputImageMat = Highgui.imread("D:\\OpenCV_Library\\resources\\Scan_Img\\image\\data1\\e-01.jpg"); // Mat inputImageMat = Highgui.imread("D:\\OpenCV_Library\\resources\\Scan_Img\\image\\data1\\e-01-145.jpg"); // Mat inputImageMat = Highgui.imread("D:\\OpenCV_Library\\resources\\Scan_Img\\image\\data1\\e-02.jpg"); // Mat inputImageMat = Highgui.imread("D:\\OpenCV_Library\\resources\\Scan_Img\\image\\data1\\e-03.jpg"); // Mat inputImageMat = Highgui.imread("D:\\OpenCV_Library\\resources\\Scan_Img\\image\\data1\\e-04.jpg"); // Mat inputImageMat = Highgui.imread("D:\\OpenCV_Library\\resources\\Scan_Img\\image\\data1\\e-05.jpg"); // Mat inputImageMat = Highgui.imread("D:\\OpenCV_Library\\resources\\Scan_Img\\image\\data1\\sc-01.jpg"); // Mat inputImageMat = Highgui.imread("D:\\OpenCV_Library\\resources\\Scan_Img\\image\\data1\\sc-04_resized.jpg"); // Mat inputImageMat = Highgui.imread("D:\\Google\\Thesis Work\\Camscanner Output\\normal_output_scan0007.jpg"); // Mat inputImageMat = Highgui.imread("D:\\Google\\Thesis Work\\Camscanner Output\\normal_output_scan0007-01.jpg"); // Mat inputImageMat = Highgui.imread("D:\\Google\\Thesis Work\\Camscanner Output\\normal_output_scan0001-01.bmp"); // Mat inputImageMat = Highgui.imread("D:\\Google\\Thesis Work\\scan-01-dec\\scan0007-300.jpg"); // Mat inputImageMat = Highgui.imread("D:\\Google\\Thesis Work\\scan-01-dec\\scan0007-145.jpg"); // Mat inputImageMat = Highgui.imread("D:\\Google\\Thesis Work\\scan-01-dec\\scan0007-145.jpg"); // Mat inputImageMat = Highgui.imread("D:\\Google\\Thesis Work\\scan-01-dec\\scan0007-96.jpg"); // Mat inputImageMat = Highgui.imread("D:\\Google\\Thesis Work\\scan-01-dec\\scan0001-145.jpg"); // Mat inputImageMat = Highgui.imread("D:\\Thesis-4-1\\Previous Work\\OPenCv2\\eProthomAlo Sample I-O\\e-5-12.jpg"); // Mat inputImageMat = Highgui.imread("D:\\Thesis-4-1\\Previous Work\\OPenCv2\\eProthomAlo Sample I-O\\e-6-12.jpg"); // Mat inputImageMat = Highgui.imread("D:\\OpenCV_Library\\resources\\Scan_Img\\image\\06-12-2015\\sc-03-145.jpg"); // Mat inputImageMat = Highgui.imread("D:\\OpenCV_Library\\resources\\Scan_Img\\image\\06-12-2015\\sc-03-145.jpg"); // Mat inputImageMat = Highgui.imread("D:\\OpenCV_Library\\resources\\Scan_Img\\image\\06-12-2015\\sc-03-300B.jpg"); Mat inputImageMat = Highgui//from ww w. j a v a 2s.com .imread("D:\\OpenCV_Library\\resources\\Scan_Img\\image\\06-12-2015\\sc-03-145B.jpg"); if (null == inputImageMat) { System.out.println("[INPUT IMAGE NULL]"); } Mat image = new Mat();//normal_output_scan0002.jpg double ratio = 150 / 72.0; // 4.167 System.out.println("WIDTH: " + inputImageMat.width() + " HEIGHT:" + inputImageMat.height()); int inputWidth = (int) (inputImageMat.width() * ratio); int inputHeight = (int) (inputImageMat.height() * ratio); System.out.println("WIDTH: " + inputWidth + " HEIGHT:" + inputHeight); // inputImageMat = image; // Mat inputImageMat = Highgui.imread("D:\\OpenCV_Library\\resources\\Scan_Img\\image\\data1\\sc-02.jpg"); // Mat inputImageMat = Highgui.imread("D:\\OpenCV_Library\\resources\\Scan_Img\\image\\data1\\sc-03.jpg"); // Mat inputImageMat = Highgui.imread("D:\\OpenCV_Library\\resources\\Scan_Img\\image\\data1\\sc-04.jpg"); // Mat inputImageMat = Highgui.imread("D:\\OpenCV_Library\\resources\\Scan_Img\\image\\data1\\sc-05.jpg"); // Mat inputImageMat = Highgui.imread("D:\\OpenCV_Library\\resources\\Scan_Img\\image\\web001.png"); Debug.debugLog("[Image [Cols, Rows]: [" + inputImageMat.cols() + ", " + inputImageMat.rows() + "]]"); // imshow("Original", inputImageMat); ViewerUI.show("Original", inputImageMat, ViewableUI.SHOW_ORIGINAL); // ViewerUI.show("Original-Histogram", Histogram.getHistogram(inputImageMat), ViewableUI.SHOW_HISTOGRAM_ORIGINAL); // Do some image processing on the image and display in another window. Mat filteredImage = new Mat(); /** * We have explained some filters which main goal is to smooth an input * image. However, sometimes the filters do not only dissolve the noise, * but also smooth away the edges */ // Imgproc.bilateralFilter(inputImageMat, m2, -1, 50, 10); /*Previous line for noise filtering*/ Imgproc.bilateralFilter(inputImageMat, filteredImage, -1, 50, 10); // Imgproc.bilateralFilter(inputImageMat, filteredImage, -1, 150, 11); ViewerUI.show("Noise Filter", filteredImage, ViewableUI.SHOW_NOISE_FILTER); // ViewerUI.show("Noise Filter-Histogram", Histogram.getHistogram(filteredImage), ViewableUI.SHOW_HISTOGRAM_NOISE_FILTER); Imgproc.Canny(filteredImage, filteredImage, 10, 150); // Imgproc.bilateralFilter(filteredImage, filteredImage, -1, 50, 10); // Imgproc.threshold(filteredImage, filteredImage, 250, 300,Imgproc.ADAPTIVE_THRESH_GAUSSIAN_C ); //Imgproc.cvtColor(m1, m1, Imgproc.COLOR_RGB2GRAY, 0); // imshow("Edge Detected", m2); ViewerUI.show("Edge Detected", filteredImage, ViewableUI.SHOW_EDGE_DETECTION); // ViewerUI.show("Edge Detected-Histogram", Histogram.getHistogram(filteredImage), ViewableUI.SHOW_HISTOGRAM_EDGE_DETECTION); Size sizeA = filteredImage.size(); System.out.println("Width: " + sizeA.width + " Height: " + sizeA.height); int width = (int) sizeA.width; int height = (int) sizeA.height; int pointLength[][][] = new int[height][width][2]; for (int i = 0; i < height; i++) { for (int j = 0; j < width; j++) { //double[] data = m2.get(i, j); if (filteredImage.get(i, j)[0] != 0) { pointLength[i][j][0] = 0; pointLength[i][j][1] = 0; continue; } if (j != 0 && filteredImage.get(i, j - 1)[0] == 0) { pointLength[i][j][0] = pointLength[i][j - 1][0]; } else { int count = 0; for (int k = j + 1; k < width; k++) { if (filteredImage.get(i, k)[0] == 0) { count++; } else { break; } } pointLength[i][j][0] = count; } if (i != 0 && filteredImage.get(i - 1, j)[0] == 0) { pointLength[i][j][1] = pointLength[i - 1][j][1]; } else { int count = 0; for (int k = i + 1; k < height; k++) { if (filteredImage.get(k, j)[0] == 0) { count++; } else { break; } } pointLength[i][j][1] = count; } } } String temp = ""; Mat convertArea = filteredImage.clone(); int[][] blackWhite = new int[height][width]; for (int i = 0; i < height; i++) { temp = ""; for (int j = 0; j < width; j++) { if (i == 0 || j == 0 || i == height - 1 || j == width - 1) { temp = temp + "@"; blackWhite[i][j] = 1; double[] data = filteredImage.get(i, j); data[0] = 255.0; convertArea.put(i, j, data); } else if (pointLength[i][j][0] > 150 && pointLength[i][j][1] > 6) { temp = temp + "@"; blackWhite[i][j] = 1; double[] data = filteredImage.get(i, j); data[0] = 255.0; convertArea.put(i, j, data); } else if (pointLength[i][j][0] > 7 && pointLength[i][j][1] > 200) { temp = temp + "@"; blackWhite[i][j] = 1; double[] data = filteredImage.get(i, j); data[0] = 255.0; convertArea.put(i, j, data); } else { temp = temp + " "; blackWhite[i][j] = 0; double[] data = filteredImage.get(i, j); data[0] = 0.0; convertArea.put(i, j, data); } } } ViewerUI.show("Convertion", convertArea, ViewableUI.SHOW_CONVERSION); // ViewerUI.show("Convertion-Histogram", Histogram.getHistogram(convertArea), ViewableUI.SHOW_HISTOGRAM_CONVERSION); ImageDetection isImage = new ImageDetection(); HeadlineDetection isHeadline = new HeadlineDetection(); ImageBorderDetectionBFS imgBFS = new ImageBorderDetectionBFS(); ArrayList<BorderItem> borderItems = imgBFS.getBorder(blackWhite, width, height, filteredImage, inputImageMat); // Mat[] subMat = new Mat[borderItems.size()]; // for (int i = 0; i < borderItems.size(); i++) { // subMat[i] = m2.submat(borderItems.get(i).getMinX(), borderItems.get(i).getMaxX(), // borderItems.get(i).getMinY(), borderItems.get(i).getMaxY()); // if (isImage.isImage(subMat[i])) { // System.out.println("subMat" + i + " is an image"); // imshow("Image" + i, subMat[i]); // // }else if(isHeadline.isHeadLine(subMat[i])){ // System.out.println("subMat" + i + " is an Headline"); // imshow("Headline" + i, subMat[i]); // }else{ // System.out.println("subMat" + i + " is an Column"); // imshow("Column" + i, subMat[i]); // } // //imshow("subMat" + i, subMat[i]); // bw.close(); // // } boolean[] imageIndexer = new boolean[borderItems.size()]; int[] lineHeight = new int[borderItems.size()]; int highestLinheight = -1, lowestLineHeight = 10000; int totalHeight = 0, notImage = 0; for (int i = 0; i < borderItems.size(); i++) { lineHeight[i] = 0; BorderItem borderItem = borderItems.get(i); // subMat[i] = m2.submat(borderItems.get(i).getMinX(), borderItems.get(i).getMaxX(), // borderItems.get(i).getMinY(), borderItems.get(i).getMaxY()); // if (isImage.isImage(subMat[i])) { // System.out.println("subMat" + i + " is an image"); // imshow("Image" + i, subMat[i]); // imageIndexer[i] = true; // continue; // }else{ // notImage++; // imageIndexer[i] = false; // } if (borderItem.getIsImage()) { System.out.println("subMat" + i + " is an image"); // imshow("Image" + i, borderItem.getBlock()); ViewerUI.show("Image" + i, borderItem.getBlock(), ViewableUI.SHOW_IMAGE); // ViewerUI.show("Image-Histogram" + i, Histogram.getHistogram(borderItem.getBlock()), ViewableUI.SHOW_HISTOGRAM_IMAGE); imageIndexer[i] = true; continue; } else { notImage++; imageIndexer[i] = false; } // totalHeight += lineHeight[i] = getLineHeight(subMat[i]); Mat fake = new Mat(); Imgproc.cvtColor(borderItem.getBlock(), fake, Imgproc.COLOR_RGB2GRAY, 0); totalHeight += lineHeight[i] = getLineHeight(fake); fake.release(); System.out.println("line height " + i + ": " + lineHeight[i]); // imshow("" + i, borderItems.get(i).getBlock()); if (lineHeight[i] > highestLinheight) { highestLinheight = lineHeight[i]; } if (lineHeight[i] < lowestLineHeight) { lowestLineHeight = lineHeight[i]; } // if(i==7) // break; } int avgLineHeight = totalHeight / notImage; for (int i = 0; i < borderItems.size(); i++) { if (!imageIndexer[i]) { if (lineHeight[i] - lowestLineHeight > 13 && lineHeight[i] >= 45) { // imshow("Headline" + i, subMat[i]); // imshow("Headline" + i, borderItems.get(i).getBlock()); ViewerUI.show("Headline" + i, borderItems.get(i).getBlock(), ViewableUI.SHOW_HEADING); // ViewerUI.show("Headline-Histogram" + i, Histogram.getHistogram(borderItems.get(i).getBlock()), ViewableUI.SHOW_HISTOGRAM_HEADING); } else if (lineHeight[i] - lowestLineHeight > 8 && lineHeight[i] >= 21 && lineHeight[i] < 45) { // imshow("Sub Headline" + i, borderItems.get(i).getBlock()); ViewerUI.show("Sub Headline" + i, borderItems.get(i).getBlock(), ViewableUI.SHOW_SUB_HEADING); // ViewerUI.show("Sub Headline-Histogram" + i, Histogram.getHistogram(borderItems.get(i).getBlock()), ViewableUI.SHOW_HISTOGRAM_SUB_HEADING); } else { // imshow("Column" + i, subMat[i]); // imshow("Column" + i, borderItems.get(i).getBlock()); ViewerUI.show("Column" + i, borderItems.get(i).getBlock(), ViewableUI.SHOW_COLUMN); // ViewerUI.show("Column-Histogram" + i, Histogram.getHistogram(borderItems.get(i).getBlock()), ViewableUI.SHOW_HISTOGRAM_COLUMN); } } } }
From source file:eu.fpetersen.robobrain.behavior.followobject.ColorBlobDetector.java
License:Open Source License
public void setHsvColor(Scalar hsvColor) { double minH = (hsvColor.val[0] >= mColorRadius.val[0]) ? hsvColor.val[0] - mColorRadius.val[0] : 0; double maxH = (hsvColor.val[0] + mColorRadius.val[0] <= 255) ? hsvColor.val[0] + mColorRadius.val[0] : 255; mLowerBound.val[0] = minH; mUpperBound.val[0] = maxH; mLowerBound.val[1] = hsvColor.val[1] - mColorRadius.val[1]; mUpperBound.val[1] = hsvColor.val[1] + mColorRadius.val[1]; mLowerBound.val[2] = hsvColor.val[2] - mColorRadius.val[2]; mUpperBound.val[2] = hsvColor.val[2] + mColorRadius.val[2]; mLowerBound.val[3] = 0; mUpperBound.val[3] = 255; Mat spectrumHsv = new Mat(1, (int) (maxH - minH), CvType.CV_8UC3); for (int j = 0; j < maxH - minH; j++) { byte[] tmp = { (byte) (minH + j), (byte) 255, (byte) 255 }; spectrumHsv.put(0, j, tmp);/* ww w .j a va2 s. c o m*/ } Imgproc.cvtColor(spectrumHsv, mSpectrum, Imgproc.COLOR_HSV2RGB_FULL, 4); }
From source file:in.fabinpaul.sixthsense.ColorBlobDetectionFragment.java
License:Apache License
private Scalar converScalarHsv2Rgba(Scalar hsvColor) { Mat pointMatRgba = new Mat(); Mat pointMatHsv = new Mat(1, 1, CvType.CV_8UC3, hsvColor); Imgproc.cvtColor(pointMatHsv, pointMatRgba, Imgproc.COLOR_HSV2RGB_FULL, 4); return new Scalar(pointMatRgba.get(0, 0)); }