Search the Community
Showing results for tags 'java'.
Found 6 results
-
Задача у меня такая сравнить 2 картинки и сказать похожи ли они. Для начала я нахожу гистограммы каждого изображения и сравниваю их мерой сходства. Далее полученное расстояние и сравниваю с неким порогом, если оно меньше порога, то выполняю подсчет дескриптора AKAZE, отфильтровываю по расстоянию хемминга и фильтром RANSAC. далее проверяю что после фильтрации свсязей осталось больше 6, если больше то говорю что изображения похожи. как вам мой подход? он верен?
-
svm OpenCV 3.4 Assertion failed (checkDetectorSize()) in setSVMDetector
kurenchuksergey posted a topic in OpenCV
Здравствуйте, пытался обучить SVM hog дескрипторами. Но в момент установки svm модели , выбрасывает исключение Находил похожие вопросы на answer opencv (Вопрос), от туда выяснил, как добавлять rho и автор советовал перейти на float массив попытался, но ситуация не изменилась Код обучения (свой картинки, 28*28) (Ошибок не возникает, файл создается ) HOGDescriptor hog = new HOGDescriptor(new Size(28,28),new Size(8,8),new Size(4,4),new Size(4,4),9); Mat trainingLabels = new Mat(); MatOfFloat temp = new MatOfFloat(); File negativeDir = new File("/home/kurenchuksergey/HogSignTrainingData/negative"); File positiveDir = new File("/home/kurenchuksergey/HogSignTrainingData/positive"); int i = -1; float[][] hogdescriptor = new float[13992][]; //13992 - image count for(File file:negativeDir.listFiles()){ Mat con = Imgcodecs.imread(file.getAbsolutePath(),Imgcodecs.CV_LOAD_IMAGE_GRAYSCALE); hog.compute(con, temp); trainingLabels.push_back(Mat.zeros(new Size(1,1),CvType.CV_32S)); } for(File file:negativeDir.listFiles()){ Mat con = Imgcodecs.imread(file.getAbsolutePath(),Imgcodecs.CV_LOAD_IMAGE_GRAYSCALE); hog.compute(con, temp); hogdescriptor[++i] = temp.toArray(); trainingLabels.push_back(Mat.ones(new Size(1,1),CvType.CV_32S)); } Mat Labels = new Mat(); trainingLabels.copyTo(Labels); Labels.convertTo(Labels,CvType.CV_32S); Mat mat = new Mat(hogdescriptor.length,hogdescriptor[0].length,CvType.CV_32FC1); for(int j = 0;j<hogdescriptor.length;j++) mat.put(i,0,hogdescriptor[i]); TrainData trainDataHog = TrainData.create(mat,Ml.ROW_SAMPLE,Labels); SVM svm = SVM.create(); svm.setType(SVM.C_SVC); svm.setKernel(SVM.RBF); svm.setDegree(0.1); // 1.4 bug fix: old 1.4 ver gamma is 1 svm.setGamma(0.1); svm.setCoef0(0.1); svm.setC(1); svm.setNu(0.1); svm.setP(0.1); svm.setTermCriteria(new TermCriteria(1, 20000, 0.0001)); svm.train(trainDataHog.getSamples(),Ml.ROW_SAMPLE,trainDataHog.getResponses()); svm.save("SVMHog"); Далее пытаюсь воспользоваться моделью (Test.java) SVM svm1 = SVM.load("SVMHog"); HOGDescriptor hog = new HOGDescriptor(new Size(28,28),new Size(8,8),new Size(4,4),new Size(4,4),9); Double rho = svm1.getDecisionFunction(0,new Mat(),new Mat()); int size = (int)(svm1.getSupportVectors().total() + 1) * svm1.getSupportVectors().channels(); float[] temp = new float[size]; svm1.getSupportVectors().get(0, 0, temp); temp[temp.length - 1] = (float)-rho; MatOfFloat vector = new MatOfFloat(temp); hog.setSVMDetector(vector); И получаю исключение (47 - строка - hog.setSVMDetector(vector); ) OpenCV Error: Assertion failed (checkDetectorSize()) in setSVMDetector, file /home/kurenchuksergey/opencv/modules/objdetect/src/hog.cpp, line 117 Exception in thread "main" CvException [org.opencv.core.CvException: cv::Exception: /home/kurenchuksergey/opencv/modules/objdetect/src/hog.cpp:117: error: (-215) checkDetectorSize() in function setSVMDetector ] at org.opencv.objdetect.HOGDescriptor.setSVMDetector_0(Native Method) at org.opencv.objdetect.HOGDescriptor.setSVMDetector(HOGDescriptor.java:306) at com.company.Test.main(Test.java:47) -
Подключение usb камеры к андроид приложению с использованием opencv(java/jni)
DenisN03 posted a topic in OpenCV
Возникла необходимость подключить внешнюю usb камеру к android приложению и вывести изображение на экран смартфона. Кто нибудь занимался схожей задачей? Работаю в Android Studio 3. Проекты(https://github.com/openxc/android-webcam, https://github.com/theicfire/simplewebcam, https://github.com/saki4510t/UVCCamera) с github вылетают с ошибками. -
Обработка результатов работы НС Enet загруженного через OpenCVна языке Java.
DenisN03 posted a topic in Вопросы по нейросетям и ИИ
Создаю андроид программу которая с использованием opencv(dnn) загружает модель нейронной сети Enet и производит сегментацию входного изображения. Все идет гладко до обработки полученных результатов. На языке python обработка производится довольно просто - в цикле проходимся по матрице пикселей и в зависимости от значения присваиваем ему цвет. В java все не так: после работы возвращается объект типа Mat со следующими параметрами: res = Mat [ -1*-1*CV_32FC1, isCont=true, isSubmat=false, nativeObj=0x7f3e56fff160, dataAddr=0x7f3e44806000 ] res.total() = 1036800 res.channels() = 1 res.size() = 6x1 res.dims() = 4 res.cols() = -1 res.rows() = -1 Более того если все таки достать(http://answers.opencv.org/question/175676/javaandroid-access-4-dim-mat-planes/) значения пикселей из полученного результата то они не соответствуют ожиданиям. Т.е. каждому классу соответствует число например если 5 классов то возвращаются числа от 0 до 4(так работает на python). Здесь же мне возвращаются числа вида: -26.287221908569336, -14.588539123535156, -7.386473655700684, 1.4765703678131104, 15.550891876220703. Кто нибудь знает как преодолеть данную проблему? Почему объект Mat возвращает не те значения?- 3 replies
-
- opencv
- neural-network
-
(and 3 more)
Tagged with:
-
Здравствуйте!!! Подскажите, пожалуйста, как можно foreach (List<Tuple<int, int>> c in coords) переписать на java?
-
Добрый день, Пробую реализовать указанный здесь метод на Java. Столкнулся с тем, что при инициализации дескриптора типа FREAK выдает ошибку об ошибочном параметре функции create(). Посмотрел в исходники features2d_manual.hpp оказалось что там данный метод закоменчен и не реализован. Вопрос, что делать? можно заменить его на ORB и получить такой же результат? что тогда надо делать при матчинге? или действия такие же?
- 10 replies
-
- opencv3.1
- feature detector
-
(and 3 more)
Tagged with: