このライブラリを使用すると、内蔵または外部の Web カメラを Java から直接使用できるようになります。一般的に使用されるカメラ機能を抽象化し、さまざまなキャプチャ フレームワークをサポートするように設計されています。
コードが何らかのキャプチャ フレームワークに依存しているが、突然それを削除して、別の、おそらく新しいフレームワークを使用する必要がある状況を想定します (たとえば、古い JMF を最新の GStreamer に置き換える)。これらのフレームワークは完全に異なり、まったく互換性がないため、これを行うとコードの重要な部分を書き直す必要があります。ここで、Webcam Capture API が世界を救うために登場します。Webcam Capture API は、そのような状況の負担を軽減するために作成されたため、コードを再度書き直す必要はなく、ドライバー クラスを別のクラスに切り替えるだけで済みます。
最新の安定バージョンは: 0.3.12
最新の開発バージョンは: 0.3.13-SNAPSHOT
(および他の ARM デバイス)
最新バージョン (0.3.10) は、そのままでは ARM では動作しません。これを機能させるには、BridJ JAR のバージョン 0.6.2 を 0.6.3-SNAPSHOT 以降の bridj-0.7-20140918 に置き換える必要があります。さらに、最近、OpenIMAJ チームの Jonathon Hare が、armhf アーキテクチャ上で問題を引き起こす bridj #525 で説明されている問題を発見しました。
最新の安定バージョンは Maven Central で入手できます。
< dependency >
< groupId >com.github.sarxos</ groupId >
< artifactId >webcam-capture</ artifactId >
< version >0.3.12</ version >
</ dependency >
スナップショットのバージョン:
< repository >
< id >Sonatype OSS Snapshot Repository</ id >
< url >http://oss.sonatype.org/content/repositories/snapshots</ url >
</ repository >
< dependency >
< groupId >com.github.sarxos</ groupId >
< artifactId >webcam-capture</ artifactId >
< version >0.3.13-SNAPSHOT</ version >
</ dependency >
最新の安定バージョンは、分離された ZIP バイナリとしてダウンロードできます。この ZIP ファイルには、Webcam Capture API 自体と、必要なすべての依存関係 ( libs
ディレクトリ内) が含まれています。以下のリンクをクリックしてダウンロードしてください。
ウェブカメラ-キャプチャ-0.3.12-dist.zip
最新の開発バージョン JAR (別名 SNAPSHOT) はここからダウンロードできます。
強い意志、暇な時間、知識、または良い目的のために費やしたい少額のお金がある場合は、この素晴らしい Webcam Capture API の開発に協力して、さらに改良することができます。さまざまな種類の貢献を大歓迎します。
このプロジェクトが素晴らしいと思うなら、協力したいと思っても、その方法がわからないなら、あなたはプロジェクトのスターゲイザーになることができます。主演することでプロジェクトの人気が高まります。 Github での通知とスターの仕組みについて詳しく知りたい場合は、このリンクにアクセスしてください。
バグを見つけた場合、または Webcam Capture をより使いやすい API にする素晴らしい機能を思いついた場合は、遠慮せずに新しい問題を作成して、問題の内容を詳細に説明してください。改善したいと思いますか。
Webcam Capture はネイティブ コードの一部を使用するため、サポートされているすべてのオペレーティング システムをカバーすることは非常に困難です。私は常に 64 ビットの Ubuntu Linux、Windows XP、Vista (どちらも 32 ビット) でテストしていますが、Raspberry Pi、Mac OS、および 32 ビット Linux ではテストすることができません。そのような可能性がある場合は、それらのシステムでテストしてください。
Java または C++ を知っている場合は、リポジトリをフォークしてプル リクエストを送信することで、Webcam Capture の開発を支援できます。 Github で他の人のコードに貢献する方法がわからない場合は、このリンクにアクセスしてください。
人々は少額のお金を寄付したいとの希望を表明しました。寄付しても、温かい気持ちになる以外に特別なものは得られません。おそらく、ウェブカメラ キャプチャ プロジェクト用に、より自由に利用できる素材を作成するよう私に促します。 PayPal 経由で寄付することができます。下の [寄付] ボタンをクリックするだけで、安全な PayPal ページにリダイレクトされ、寄付金額を入力できます (最低額はありません)。
以下のコードは、デフォルトの Web カメラから画像をキャプチャし、 hello-world.png
ファイルに保存します。
Webcam webcam = Webcam . getDefault ();
webcam . open ();
ImageIO . write ( webcam . getImage (), "PNG" , new File ( "hello-world.png" ));
以下は、Webcam Capture API を Java コードでどのように使用できるかを示す非常に基本的な例です。すべてはプロジェクトのソース コードにあります。これらの例の一部は、Maven Central にまだリリースされていない最新の API を使用している可能性があることに注意してください。このような場合は、最新の Webcam Capture API SNAPSHOT を使用していることを確認してください。
WebcamPanel
に表示される画像を反転(ミラー)する方法WebcamPanel
に表示される画像を回転する方法WebcamImageTransformer
を使用してカメラからの画像を回転する方法ここでは、より高度な例をいくつか紹介しますが、非常に派手な GUI を備えた例はほとんどありません。
JFrame
ウィンドウでWebcamMotionDetector
を使用する方法WebcamPanel.Painter
インターフェイスを使用してWebcamPanel
コンポーネントにエフェクトを描画する方法WebcamImageTransformer
使用してカメラからの画像に直接エフェクトを描画する方法ウェブカメラ キャプチャ初心者向けの、Authentic Coder によるビデオ シリーズ:
Webcam Capture API は、マルチメディアやカメラの操作に使用されるよく知られたフレームワーク上に構築されたいくつかのキャプチャ ドライバーにすでに実装されているWebcamDriver
インターフェイスを定義します。完全なリストは以下にあります。
デフォルトでは (他のドライバーが指定されていない場合)、ライブラリは、スレッドセーフなコンテナーにラップされた素晴らしい OpenIMAJ フレームワークの小さく洗練された部分で構成されるデフォルトのドライバーを使用します。ただし、デフォルトのドライバーの置き換えまたは追加として使用できる、すぐに使用できるドライバーが他にもあります。これらのドライバーを利用することで、Webcam Capture をさまざまな新機能 (IP カメラのサポートなど) で拡張できます。
追加のキャプチャ ドライバーのリストには次が含まれます。
ドライバー名 | 安定した | 中央 | 説明 |
---|---|---|---|
IPカメラ | はい | はい | IP/ネットワークカメラ用ドライバー |
fsウェブカメラ | はい | はい | FSWebcam CLI ツールのドライバー |
ジーストリーマー | はい | はい | GStreamer フレームワークのドライバー |
オープンイマジ | はい | はい | OpenIMAJフレームワーク用ドライバー |
v4l4j | はい | いいえ | V4L4jライブラリ用ドライバ |
JMF | はい | はい | JMF / FMJ フレームワーク用ドライバー |
社会福祉 | はい | はい | LTI-CIVIL ライブラリ用ドライバー |
vlcj | はい | はい | vlcjライブラリ用ドライバー |
javacv | はい | はい | JavaCVライブラリ用ドライバ |
ffmpeg-cli | ポク | いいえ | FFmpeg CLI ツールのドライバー |
ラスピカム | ポク | いいえ | Raspicam CLI PIcam ツール用ドライバー |
他のドライバーが指定されていない場合は、デフォルトのドライバーが使用されます。これは、スレッドセーフなコンテナーでラップされた素晴らしい OpenIMAJ フレームワークの小さく洗練された部分で構成されています。
このキャプチャ ドライバーを使用すると、IP カメラ デバイスにアクセスし、JPEG 画像または MJPEG ストリームの形式で画像を処理できるようになります。
Maven の依存関係:
< dependency >
< groupId >com.github.sarxos</ groupId >
< artifactId >webcam-capture-driver-ipcam</ artifactId >
< version >{webcam-capture-version-here}</ version >
</ dependency >
使用方法:
Webcam . setDriver ( new IpCamDriver ());
詳細とバイナリのダウンロードについては、専用の webcam-capture-driver-ipcam ページをご覧ください。
このキャプチャ ドライバーを使用すると、 fswebcam
(Philip Heron によって作成) と呼ばれる CLI ツールを使用して、コンピューターに接続されている UVC デバイスにアクセスできるようになります。 *nix 上でのみ動作し、ドライバーが使用される環境にツールをインストールする必要があります。
Maven の依存関係:
< dependency >
< groupId >com.github.sarxos</ groupId >
< artifactId >webcam-capture-driver-fswebcam</ artifactId >
< version >{webcam-capture-version-here}</ version >
</ dependency >
使用方法:
Webcam . setDriver ( new FsWebcamDriver ());
fswebcam
使用方法、インストール方法、バイナリをダウンロードできる場所の詳細については、専用の webcam-capture-driver-fswebcam ページをご覧ください。
このキャプチャ ドライバーにより、GStreamer を使用してコンピューターに接続されている UVC カメラ デバイスにアクセスできるようになります。 Windows と Linux でのみ動作します。
Maven の依存関係:
< dependency >
< groupId >com.github.sarxos</ groupId >
< artifactId >webcam-capture-driver-gstreamer</ artifactId >
< version >{webcam-capture-version-here}</ version >
</ dependency >
使用方法:
Webcam . setDriver ( new GStreamerDriver ());
GStreamer の使用方法、インストール方法、バイナリをダウンロードできる場所の詳細については、専用の webcam-capture-driver-gstreamer ページをご覧ください。
このキャプチャ ドライバーを使用すると、OpenIMAJ を使用してコンピューターに接続されている UVC カメラ デバイスにアクセスできるようになります。
Maven の依存関係:
< dependency >
< groupId >com.github.sarxos</ groupId >
< artifactId >webcam-capture-driver-openimaj</ artifactId >
< version >{webcam-capture-version-here}</ version >
</ dependency >
使用方法:
Webcam . setDriver ( new OpenImajDriver ());
使用方法とバイナリをダウンロードできる場所の詳細については、専用の webcam-capture-driver-openimaj ページを参照してください。
V4L4j プロジェクトを使用して UVC カメラ デバイスにアクセスするキャプチャ ドライバーです。 Linux でのみ動作し、Raspberry Pi での使用に最適のようです。
Maven の依存関係:
< dependency >
< groupId >com.github.sarxos</ groupId >
< artifactId >webcam-capture-driver-v4l4j</ artifactId >
< version >{webcam-capture-version-here}</ version >
</ dependency >
使用方法:
Webcam . setDriver ( new V4l4jDriver ());
使用方法と必要なバイナリをダウンロードできる場所の詳細については、専用の webcam-capture-driver-v4l4j ページをご覧ください。
これは、JMF (Java Media Framework) を使用して UVC Web カメラ デバイスにアクセスするキャプチャ ドライバーです。このドライバーを使用する前に、JMF を PC にインストールして構成する必要があります。 FMJ プロジェクトと併用することもできます。
Maven の依存関係:
< dependency >
< groupId >com.github.sarxos</ groupId >
< artifactId >webcam-capture-driver-jmf</ artifactId >
< version >{webcam-capture-version-here}</ version >
</ dependency >
使用方法:
Webcam . setDriver ( new JmfDriver ());
使用方法、インストール方法、必要なバイナリをダウンロードできる場所の詳細については、専用の webcam-capture-driver-jmf ページをご覧ください。
これは、LTI-CIVIL プロジェクト (Larson Technologies Inc. による) の機能を活用し、広範囲の UVC デバイスにアクセスするために使用するように設計されたキャプチャ ドライバーです。 32 ビット アーキテクチャでのみ動作します。
Maven の依存関係:
< dependency >
< groupId >com.github.sarxos</ groupId >
< artifactId >webcam-capture-driver-lti-civil</ artifactId >
< version >{webcam-capture-version-here}</ version >
</ dependency >
使用方法:
Webcam . setDriver ( new LtiCivilDriver ());
使用方法の詳細と、必要なバイナリをダウンロードできる場所については、専用の webcam-capture-driver-lti-civil ページを参照してください。
これは、Caprica Software Limited の VLCj ライブラリを使用して UVC カメラ デバイスにアクセスするキャプチャ ドライバーです。
Maven の依存関係:
< dependency >
< groupId >com.github.sarxos</ groupId >
< artifactId >webcam-capture-driver-vlcj</ artifactId >
< version >{webcam-capture-version-here}</ version >
</ dependency >
使用方法:
Webcam . setDriver ( new VlcjDriver ());
使用方法、インストール方法、必要なバイナリをダウンロードできる場所の詳細については、専用の webcam-capture-driver-vlcj ページをご覧ください。
これは、OpenCV の JavaCV バインディングを使用して UVC カメラ デバイスにアクセスするキャプチャ ドライバーです。
Maven の依存関係:
< dependency >
< groupId >com.github.sarxos</ groupId >
< artifactId >webcam-capture-driver-opencv</ artifactId >
< version >{webcam-capture-version-here}</ version >
</ dependency >
または、webcam-capture < 0.3.12 を使用している場合:
< dependency >
< groupId >com.github.sarxos</ groupId >
< artifactId >webcam-capture-driver-javacv</ artifactId >
< version >{webcam-capture-version-here}</ version >
</ dependency >
特定のプラットフォームのみを対象とする場合は、「依存関係の数の削減」を参照してください。
使用方法:
Webcam . setDriver ( new JavaCvDriver ());
使用方法、インストール方法、必要なバイナリをダウンロードできる場所の詳細については、専用の webcam-capture-driver-javacv ページを参照してください。
これは、FFmpeg のffmpeg
CLI ツールを使用して UVC カメラ デバイスにアクセスするキャプチャ ドライバーです。
Maven の依存関係:
< dependency >
< groupId >com.github.sarxos</ groupId >
< artifactId >webcam-capture-driver-ffmpeg-cli</ artifactId >
< version >{webcam-capture-version-here}</ version >
</ dependency >
使用方法:
Webcam . setDriver ( new FFmpegCliDriver ());
使用方法、インストール方法、必要なバイナリをダウンロードできる場所の詳細については、専用の webcam-capture-driver-ffmpeg-cli ページを参照してください。
私は、Andrew Davison の Killer Game Programming という素晴らしい本 (オンラインでも入手可能) を読んだ後、単純な概念実証として Webcam Capture に取り組み始めました。アンドリューさん、ありがとう!後で、Web カメラから画像をキャプチャできるようにする Java API には完全な混乱があることがわかりました。特定の API を選択すると、コードの大部分を変更しない限り、それを変更することはできません。私はこの状況を変えて、さまざまな API (JMF、OpenCV、OpenIMAJ、LTI-CIVIL、VLC など) 用の汎用ラッパーを作成することにしました。このようにして、今日私たちが知っている Webcam Capture が誕生しました。現在では、Web カメラドライバーを置き換えるだけ (1 行のコード変更) で、基礎となるフレームワークを変更できます。特定のフレームワーク用のドライバーがない場合は、自分で簡単に作成できます。
著作権 (C) 2012 - 2017 Bartosz Firyn (https://github.com/sarxos) および寄稿者
本ソフトウェアおよび関連ドキュメント ファイル (以下「ソフトウェア」) のコピーを入手した人には、使用、コピー、変更、マージする権利を含むがこれらに限定されない、制限なくソフトウェアを取り扱う許可が、ここに無償で与えられます。 、以下の条件を条件として、本ソフトウェアのコピーを出版、配布、サブライセンス、および/または販売すること、および本ソフトウェアが提供される人物にそれを許可すること。
上記の著作権表示およびこの許可通知は、ソフトウェアのすべてのコピーまたは主要部分に含まれるものとします。
ソフトウェアは「現状のまま」提供され、明示的か黙示的かを問わず、商品性、特定目的への適合性、および非侵害の保証を含むがこれらに限定されない、いかなる種類の保証も行われません。いかなる場合においても、作者または著作権所有者は、契約行為、不法行為、またはその他の行為であるかどうかにかかわらず、ソフトウェアまたはソフトウェアの使用またはその他の取引に起因または関連して生じる、いかなる請求、損害、またはその他の責任に対しても責任を負わないものとします。ソフトウェア。