Tag: 特征检测

傅里叶变换和傅立叶描述符在Java上提取形状特征

我正在尝试使用傅里叶描述符构建一个简单的系统来识别简单的形状:我在我的程序中使用快速傅里叶变换的这种实现:(链接如下) http://www.wikijava.org/wiki/The_Fast_Fourier_Transform_in_Java_%28part_1%29 fft(double[] inputReal, double[] inputImag, boolean direction) 输入是:真实和图像部分(它本质上是边界参数的x,y坐标),输出是变换的实数和图像数。 问题:我如何使用输出(变换的真实,图像)作为我简单形状的不变描述符? 这就是我的想法: 对于每N个步骤计算R = sqrt( real^2 + imag^2 ) 。 将每个R除以R[1] =归一化因子以使其不变。 问题是我对于稍微不同的图像(例如应用轻微旋转等)获得了非常不同的R值 换句话说 : 我的描述符不是不变的…我认为我在获取R值时出错了。

使用OpenCV进行面部特征检测,眼睛和嘴角点

我正在进行面部特征检测项目,我确实使用OpenCv withHaarcascade xml文件检测眼睛,鼻子和嘴巴。 但是,我希望有眼睛和嘴角点和鼻子中心。 目标是用它来预测情绪。 我发现这个链接显示它是如何工作的,我需要使用JAVA来获得这个结果。 任何人都可以帮助我吗? 提前致谢。 http://cmp.felk.cvut.cz/~uricamic/flandmark/ 在这一部分,我们收到了脸部图像,我们在脸上绘制: public void drawFaces(BufferedImage image) { final List faces = FacialRecognition.run(image, db); if (faces.isEmpty()) { return; } Graphics2D g2 = image.createGraphics(); g2.setStroke(new BasicStroke(2)); currentFaces.clear(); for (PotentialFace face : faces) { final Rectangle r = face.box; final Color c1, c2; final String msg; if (face.name == null) […]

OpenCV过滤ORB匹配

我使用ORBfunction检测器使用此代码查找两个图像之间的匹配: FeatureDetector detector = FeatureDetector.create(FeatureDetector.ORB); DescriptorExtractor descriptor = DescriptorExtractor.create(DescriptorExtractor.ORB);; DescriptorMatcher matcher = DescriptorMatcher.create(DescriptorMatcher.BRUTEFORCE_HAMMING); // First photo Imgproc.cvtColor(img1, img1, Imgproc.COLOR_RGB2GRAY); Mat descriptors1 = new Mat(); MatOfKeyPoint keypoints1 = new MatOfKeyPoint(); detector.detect(img1, keypoints1); descriptor.compute(img1, keypoints1, descriptors1); // Second photo Imgproc.cvtColor(img2, img2, Imgproc.COLOR_RGB2GRAY); Mat descriptors2 = new Mat(); MatOfKeyPoint keypoints2 = new MatOfKeyPoint(); detector.detect(img2, keypoints2); descriptor.compute(img2, keypoints2, descriptors2); […]