প্রকল্প সম্পর্কে
# JavaCV
JavaCV জনপ্রিয় কম্পিউটার ভিশন এবং মাল্টিমিডিয়া লাইব্রেরি—OpenCV, FFmpeg, libdc1394, FlyCapture, Spinnaker, OpenKinect, librealsense, ARToolKitPlus, flandmark, Leptonica, এবং Tesseract—কে JavaCPP Presets এর মাধ্যমে জাভা এবং অ্যান্ড্রয়েড থেকে সুবিধাজনক করে তোলে।
## এটি কী করে
- OpenCV এবং FFmpeg বাইন্ডিংয়ের মাধ্যমে ইমেজ এবং ভিডিও লোড ও প্রসেস করে
- ওয়েবক্যাম, ক্যামেরা এবং ভিডিও ফাইল থেকে ফ্রেম ক্যাপচার করে
- ভিডিও আউটপুট ফাইলে রেকর্ড করে
- Haar cascades, কন্ট্যুর খোঁজা, জ্যামিতিক ট্রান্সফরমেশন এবং ক্যালিব্রেশন ইউটিলিটি দিয়ে ফেস ডিটেকশন প্রদান করে
- `CanvasFrame` / `GLCanvasFrame` এর মাধ্যমে হার্ডওয়্যার-ত্বরান্বিত পূর্ণ-স্ক্রিন ইমেজ ডিসপ্লে
- NIO বুফারের মাধ্যমে সমান্তরাল এক্সিকিউশন হেল্পার এবং সরাসরি নেটিভ মেমোরি অ্যাক্সেস
## মূল ক্লাস
- `FrameGrabber` / `FrameRecorder` — ক্যাপচার এবং রেকর্ডিংয়ের জন্য অপেন্ডার্স ইন্টারফেস; কনক্রিট ইমপ্লিমেন্টেশনের মধ্যে রয়েছে `OpenCVFrameGrabber`, `FFmpegFrameGrabber`, `OpenCVFrameRecorder`, `FFmpegFrameRecorder`
- `OpenCVFrameConverter` / `Java2DFrameConverter` — OpenCV `Mat`/`IplImage`, জাভা `BufferedImage`, অ্যান্ড্রয়েড `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` রান করুন। স্ন্যাপশট বিল্ড http://bytedeco.org/builds/ এও পাওয়া যায়।
## লিঙ্ক
- রিপোজিটরি: https://github.com/bytedeco/javacv
- মেলিং তালিকা: http://groups.google.com/group/javacv
- আলোচনা: https://github.com/bytedeco/javacv/discussions
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.