-
JavaでMongoDBコレクションにドキュメントを挿入する方法を徹底解説
MongoDBでは、insert()メソッドを使うことで、既存のコレクションにドキュメントを挿入できます。 構文 db.coll.insert(doc) 各要素の意味は以下の通りです。 db: 接続先のデータベース coll: ドキュメントを挿入するコレクション名 doc: 挿入したいドキュメント mongoシェルでの実行例 > use myDatabase() switched to db myDatabase() > db.createCollection(sample) { "ok" : 1 } > db.sample.insert({name:
-
JavaでMongoDBコレクションに複数のドキュメントを挿入する方法
MongoDBでは、insertMany()メソッドを使用することで、既存のコレクションに複数のドキュメントを一度に挿入できます。本記事では、シェルからの基本的な操作方法と、Javaプログラムから実行する手順を解説します。 基本構文 db.coll.insert(docArray) 各要素の意味は以下のとおりです。 db:データベース名 coll:ドキュメントを挿入するコレクション名 docArray:挿入したいドキュメントの配列 シェルでの実行例 > use myDatabase switched to db myDatabase > db.sampleCollection.
-
Javaを使ってMongoDBコレクションからすべてのドキュメントを取得する方法
MongoDBでは、find()メソッドを使用することで、既存のコレクションからドキュメントを取得できます。この記事では、MongoDBシェルでの基本操作と、Javaプログラムからすべてのドキュメントを取得する手順について詳しく解説します。MongoDBシェルでの構文db.coll.find()各要素の意味は以下のとおりです。db:対象となるデータベースcoll:ドキュメントを取得したいコレクションの名前シェルでの実行例ここでは、MongoDBデータベース内に「students」というコレクションがあり、次のドキュメントが登録されているものとします。{name:"Ram",
-
Javaを使用してMongoDBのドキュメントを削除するには?基本とサンプルコード解説
MongoDBでは、既存のコレクションからドキュメントを削除する際に remove() メソッドを使用できます。本記事では、MongoDBシェルでの削除方法と、Javaプログラムからドキュメントを削除する方法を順を追って解説します。 構文 db.coll.remove(削除条件) 各要素の意味は以下のとおりです。 db: 操作対象のデータベース coll: ドキュメントを削除したいコレクション名 例 MongoDBデータベースに students というコレクションがあり、次のドキュメントが登録されていると仮定します。 {name:Ram, age:26, city:Mumbai} {na
-
JavaでMongoDBのコレクションを削除する方法【drop()メソッドの使い方を解説】
MongoDBでは、drop()メソッドを使うことで、既存のコレクションを簡単に削除できます。この記事では、MongoDBシェルでの基本的な使い方と、Javaプログラムからコレクションを削除する手順をサンプルコード付きで解説します。 基本構文 db.coll.drop() 各項目の意味は以下の通りです。 db:操作対象のデータベース coll:削除したいコレクション名 drop()メソッドは、削除に成功すると true を返します。 MongoDBシェルでの実行例 まず、サンプルデータベースに3つのコレクションを作成した状態を想定します。 > use sampleDatabase s
-
Java OpenCVライブラリで画像の色空間を変換する方法|cvtColor()の使い方を解説
色空間とは色空間(カラースペース)とは、画像内の色を数値的に表現するための規格のことです。OpenCVには複数の色空間が用意されており、代表的なものは以下の通りです。BGR − 最も広く使われている色空間です。各ピクセルは赤・青・緑の3つの輝度値で構成されます。OpenCVのデフォルトの色空間ですが、RGBではなくBGRの順序で格納される点に注意が必要です。HSV − 色相(Hue)、彩度(Saturation)、明度(Value/Brightness)の3つの要素を変更することでさまざまな色を表現します。色の直感的な操作に適しています。CMY − 減法混色の色空間です。白を起点として、シアン
-
JShellツールはJava 9の内部でどのように動作するのか?仕組みを徹底解説
JShellとは?Java 9がもたらす新しい開発環境JShellはJava 9で導入されたツールで、Java言語の機能や豊富な標準ライブラリを素早く探索・発見・実験できる、高速かつ使いやすい環境を提供します。いわゆるREPL(Read-Eval-Print Loop:読み込み・評価・表示のループ)として動作し、完全なプログラムを作成しなくても、1行ずつコードを実行して結果を即座に確認できるのが大きな特徴です。内部の処理フロー:JLineからJVMまでコードがJShellコンソールに入力されると、まずJLineというJavaライブラリによって処理されます。JLineは、コンソール上の入力を取得
-
JavaとOpenCVを使って2つの画像にビット単位のAND演算を行う方法
2つの画像間でビット単位のAND演算(論理積)を計算するには、org.opencv.core.Coreクラスが提供するbitwise_and()メソッドを使用します。このメソッドは、入力画像・出力画像として3つのMatオブジェクトを受け取ります。ソース行列内の各要素に対してビット単位の論理積を計算し、その結果を出力先の行列に格納します。両方の画像で対応するピクセルが非ゼロである場合のみ、結果のピクセル値が保持される仕組みです。メソッドの基本構文Core.bitwise_and(src1, src2, dst);src1 / src2:演算の対象となる入力画像(Matオブジェクト)dst:演算結
-
JavaとOpenCVで画像の輪郭(コンタ)を検出する方法【findContours()徹底解説】
輪郭(コンタ)とは、特定の形状の境界線上にあるすべての点を結んだ線のことです。輪郭を検出することで、以下のような処理が可能になります。物体の形状を把握する物体の面積を計算する物体を検出する物体を認識するfindContours()メソッドとはOpenCVでは、findContours()メソッドを使うことで、画像内に含まれるさまざまな形状や物体の輪郭を検出できます。このメソッドは、以下のパラメータを受け取ります。二値化された画像検出した輪郭を格納するための、MatOfPoint型の空のリストオブジェクト画像のトポロジー(階層情報)を格納するための空のMatオブジェクト輪郭検出のモードと手法を指
-
Java OpenCVライブラリで画像の輪郭面積を検出する方法
輪郭(コンタ)とは輪郭(Contours)とは、特定の形状の境界線上にあるすべての点を結んだ線のことです。輪郭を利用することで、以下のような処理が可能になります。物体の形状を検出する物体の面積を計算する物体を検出する物体を認識する画像内のさまざまな形状や物体の輪郭は、findContours() メソッドを使用して検出できます。また、入力画像内の図形の面積を求めることも可能です。その場合は、Imgproc クラスの contourArea() メソッドを呼び出します。このメソッドは特定の形状の輪郭を受け取り、その面積を計算して返します。サンプルコード次のJavaの例では、指定した画像内の各図形
-
OpenCVのJavaライブラリで画像のキーポイント(特徴点)を検出する方法
OpenCVのorg.opencv.features2d.Feature2D(抽象クラス)が提供するdetect()メソッドを使用すると、指定した画像からキーポイント(特徴点)を検出できます。このメソッドを呼び出す際は、元画像を表すMatオブジェクトと、検出結果を格納するための空のMatOfKeyPointオブジェクトを引数として渡します。 また、検出されたキーポイントを画像上に描画したい場合は、org.opencv.features2d.Features2dクラスのdrawKeypoints()メソッドを利用します。 注意点 Feature2Dは抽象クラスであるため、detect()メソ
-
OpenCV Javaライブラリを使って2枚の画像の特徴点をマッチングする方法
OpenCVのorg.opencv.features2d.Feature2Dクラス(抽象クラス)が提供するdetect()メソッドを使用すると、指定した画像から特徴点(キーポイント)を検出できます。このメソッドには、元画像を表すMatオブジェクトと、検出した特徴点を格納するための空のMatOfKeyPointオブジェクトを渡します。 さらに、org.opencv.features2d.Features2dクラスのdrawMatches()メソッドを使うと、2つの画像の特徴点同士の対応関係(マッチング)を計算し、その結果を描画できます。このメソッドは以下のパラメータを受け取ります。 src1
-
JavaのOpenCVライブラリで画像にマーカーを描画する方法をわかりやすく解説
OpenCVでは、org.opencv.imgproc.Imgprocクラスに用意されているdrawMarker()メソッドを使うことで、画像上に簡単にマーカー(目印)を描画できます。検出した物体の位置を可視化したい場合などに非常に便利な機能です。 drawMarker()メソッドのパラメータ このメソッドは、以下のパラメータを受け取ります。 img − 入力画像を表すMatオブジェクト position − マーカーの位置を指定するPointクラスのオブジェクト color − マーカーの色を指定するScalarクラスのオブジェクト markerType − マーカーの種類を指定する整数定
-
Javaで画像のピクセル(RGB値)を取得する方法|getRGB()メソッドとシフト演算の使い方
デジタル画像とピクセルの仕組み デジタル画像は、ピクセルと呼ばれる最小単位の要素が2次元配列状に並んで構成されており、ピクセルはデジタル画像を構成する最も小さな要素です。 各ピクセルにはアルファ(透明度)、赤、緑、青(ARGB)の4つの値が含まれており、それぞれの値は0〜255の範囲に収まります。これは1色あたり8ビット(2^8)で表現できることを意味します。 ARGBの各値は、4バイトのメモリに右から左の順序で格納されます。具体的には、青が0〜7ビット目、緑が8〜15ビット目、赤が16〜23ビット目、アルファが24〜31ビット目に配置されます。 画像のピクセル値(ARGB)を取得する手順 画
-
Java OpenCVで画像にビット単位のNOT演算を実行する方法
JavaでOpenCVを使用している場合、org.opencv.core.Coreクラスが提供するbitwise_not()メソッドを呼び出すだけで、画像に対してビット単位のNOT演算(各ピクセル値の反転処理)を適用できます。このメソッドは、ソース行列と出力先の行列を表す2つのMatオブジェクトを引数として受け取ります。処理では、ソース行列内の各要素のビットをすべて反転し、その結果を出力先の行列に格納します。ピクセル値が反転されるため、元の画像の明るい部分は暗く、暗い部分は明るく表示され、いわゆる「ネガポジ反転」のような視覚効果が得られます。サンプルコードimport org.opencv.c
-
JavaとOpenCVで塗りつぶしポリゴン(多角形)を描画する方法
Java版OpenCVライブラリの org.opencv.imgproc パッケージには、画像処理のための各種メソッドを提供する Imgproc クラスが含まれています。塗りつぶされたポリゴン(多角形)を描画したい場合は、このクラスが持つ fillPoly() メソッドを呼び出します。fillPoly() メソッドのパラメータfillPoly() メソッドは、以下の引数を受け取ります。ポリゴンを描画する対象の画像を表す Mat オブジェクトMatOfPoint 型のオブジェクトを格納した List オブジェクト(ポリゴンの頂点座標)ポリゴンの色を表す Scalar オブジェクト線の種類(ライン
-
JavaでOpenCVのMatオブジェクトをBufferedImageに変換する方法を解説
OpenCVのimread()メソッドを使って画像を読み込むと、戻り値としてMatオブジェクトが返されます。しかし、このMatオブジェクトの内容をAWTやSwingのウィンドウ上に表示したい場合は、java.awt.image.BufferedImageクラスのオブジェクトへ変換する必要があります。本記事では、MatからBufferedImageへの変換手順を、サンプルコードとともにわかりやすく解説します。MatをBufferedImageに変換する4つのステップ1. MatをMatOfByteにエンコードするまず、画像データを保持する行列(Mat)を、バイト列のマトリックスであるMatOfB
-
Java OpenCVライブラリで画像の輪郭を検出・描画する方法
輪郭(コンター)とは、特定の形状の境界線上にあるすべての点を結んでできた線のことです。輪郭を利用することで、以下のような処理が可能になります。 オブジェクトの形状を調べる オブジェクトの面積を計算する オブジェクトを検出する オブジェクトを認識する 輪郭の検出には findContours() メソッド 画像内に含まれるさまざまな形状やオブジェクトの輪郭を検出するには、OpenCVが提供する findContours() メソッドを使用します。一般的には、あらかじめ画像をグレースケール化し、二値化処理を行ってから輪郭検出を実行すると、より正確な結果が得られます。 輪郭の描画には drawC
-
Java 9でサービスプロバイダーインターフェイス(SPI)を作成する手順を解説
Java 9で導入されたモジュールシステムにおいて、Serviceインターフェイスの実装を提供するモジュールは、module descriptorファイル(module-info.java)内に「provides」ステートメントを記述する必要があります。もしモジュール記述子ファイルに「provides」ステートメントが存在しない場合、ServiceLoaderはそのモジュールを読み込むことができません。サービスプロバイダーインターフェイスの作成手順以下の手順に従うことで、Service Provider Interface(SPI)を作成できます。新しいモジュール com.tutorialsp
-
Java 9のJShellで使える/varsコマンドの種類と使い方を徹底解説
JShellとは JShellは、Java 9で導入された対話型のコマンドラインツールです。REPL(Read-Eval-Print Loop)とも呼ばれ、ユーザーの入力を受け取り、それを評価して結果を出力します。 JShellでは、内部コマンド「/vars」を使用することで、セッション中に作成されたすべての変数を一覧表示できます。JShellには、以下のように複数の「/vars」コマンドが用意されています。 /vars /vars [ID] /vars [変数名] /vars -start /vars -all 各コマンドの役割 /vars:現在のセッションで有効なすべての変数の一覧を表示