इस प्रोजेक्ट के बारे में

# JavaCV JavaCV लोकप्रिय कंप्यूटर विजन और मल्टीमीडिया लाइब्रेरीज—OpenCV, FFmpeg, libdc1394, FlyCapture, Spinnaker, OpenKinect, librealsense, ARToolKitPlus, flandmark, Leptonica, और Tesseract—को JavaCPP Presets के माध्यम से Java और Android तक सुलभ बनाता है। ## यह क्या करता है - OpenCV और FFmpeg बाइंडिंग्स के माध्यम से इमेज और वीडियो को लोड और प्रोसेस करता है - वेबकैम, कैमरे और वीडियो फ़ाइलों से फ्रेम कैप्चर करता है - फ़ाइलों में वीडियो आउटपुट रिकॉर्ड करता है - Haar cascades, contour खोज, ज्यामितीय ट्रांसफॉर्मेशन और कैलिब्रेशन यूटिलिटीज के साथ फेस डिटेक्शन प्रदान करता है - `CanvasFrame` / `GLCanvasFrame` के माध्यम से हार्डवेयर-एक्सीलेरेटेड फुल-स्क्रीन इमेज डिस्प्ले - NIO बफर्स के माध्यम से पैरलल एक्जीक्यूशन हेल्पर्स और सीधा नेटिव मेमोरी एक्सेस ## मुख्य क्लासें - `FrameGrabber` / `FrameRecorder` — कैप्चर और रिकॉर्डिंग के लिए एबस्ट्रेक्ट इंटरफेस; कन्क्रీट इम्प्लीमेंटेशन में `OpenCVFrameGrabber`, `FFmpegFrameGrabber`, `OpenCVFrameRecorder`, `FFmpegFrameRecorder` शामिल हैं - `OpenCVFrameConverter` / `Java2DFrameConverter` — OpenCV `Mat`/`IplImage`, Java `BufferedImage`, Android `Bitmap`, और `Frame` के बीच कन्वर्ट करते हैं - `CascadeClassifier` — ऑब्जेक्ट/फेस डिटेक्शन के लिए XML फ़ाइलों से लोड होता है - `CanvasFrame` / `GLCanvasFrame` — वैकल्पिक फुल-स्क्रीन मोड के साथ डिस्प्ले विंडो - `Parallel` — कई कोर पर टास्क एक्जीक्यूट करता है - `GeometricCalibrator` / `ProCamGeometricCalibrator` — कैमरा और प्रोजेक्टर कैलिब्रेशन ## इंस्टॉलेशन अपने बिल्ड में प्लेटफ़ॉर्म BOM जोड़ें। Maven: ```xml <dependency> <groupId>org.bytedeco</groupId> <artifactId>javacv-platform</artifactId> <version>1.5.14</version> </dependency> ``` Gradle: ```groovy implementation 'org.bytedeco:javacv-platform:1.5.14' ``` GPU-एक्सीलेरेटेड OpenCV या GPL-लाइसेंस्ड FFmpeg बिल्ड्स के लिए, क्रमशः `opencv-platform-gpu` या `ffmpeg-platform-gpl` जोड़ें। बाइनरीज Android, iOS, Linux, macOS, और Windows को कवर करती हैं। ## आवश्यकताएं - Java SE 8 या नया - C++ कंपाइलर (सोर्स से बिल्ड करने के लिए) - वैकल्पिक: Android SDK API 24+, OpenCL और OpenGL सपोर्ट के लिए JOCL/JOGL - 32-बिट और 64-बिट आर्टिफैक्ट्स मिलाएं नहीं; वे आपस में संगत नहीं हैं ## नमूना: वेबकैम से फेस डिटेक्शन ```java import org.bytedeco.javacv.*; import org.bytedeco.opencv.opencv_core.*; import org.bytedeco.opencv.opencv_objdetect.*; import static org.bytedeco.opencv.global.opencv_core.*; import static org.bytedeco.opencv.global.opencv_imgproc.*; import static org.bytedeco.opencv.global.opencv_objdetect.*; public class FaceDetect { public static void main(String[] args) throws Exception { FrameGrabber grabber = FrameGrabber.createDefault(0); grabber.start(); CascadeClassifier classifier = new CascadeClassifier( "haarcascade_frontalface_alt.xml"); OpenCVFrameConverter.ToMat converter = new OpenCVFrameConverter.ToMat(); CanvasFrame frame = new CanvasFrame("Face Detection"); Mat gray = new Mat(); while (frame.isVisible() && (grabbed = converter.convert(grabber.grab())) != null) { cvtColor(grabbed, gray, COLOR_BGR2GRAY); RectVector faces = new RectVector(); classifier.detectMultiScale(gray, faces); for (int i = 0; i < faces.size(); i++) { Rect r = faces.get(i); rectangle(grabbed, new Point(r.x(), r.y()), new Point(r.x() + r.width(), r.y() + r.height()), new Scalar(0, 255, 0)); } frame.showImage(grabbed); } frame.dispose(); grabber.stop(); } } ``` ## सोर्स से बिल्ड Maven 3.x और JavaCPP 1.5.14 की आवश्यकता है। JavaCPP, JavaCPP Presets, और JavaCV निर्देशिकाओं में `mvn install` चलाएं।snapshot बिल्ड्स http://bytedeco.org/builds/ पर भी उपलब्ध हैं। ## लिंक्स - Repository: https://github.com/bytedeco/javacv - Mailing list: http://groups.google.com/group/javacv - Discussion: https://github.com/bytedeco/javacv/discussions