OpenCV Javaライブラリを使用して画像に幾何学的形状を描画するにはどうすればよいですか?
Java OpenCVライブラリのorg.opencv.imgprocパッケージには、Imgprocという名前のクラスが含まれています。このクラスは、入力画像を処理するために、resize()、wrapAffine()、filter2Dなどのさまざまなメソッドを提供します。
それらに加えて、画像に幾何学的形状を描くための一連の方法を提供します。以下はそれらのいくつかです-
形状 | メソッドと説明 |
---|---|
楕円 | ellipse()を使用して、画像に楕円を描くことができます メソッド。 |
サークル | circle()を使用して、画像に円を描くことができます メソッド。 |
長方形 | rectangle()を使用して、画像に長方形を描くことができます メソッド。 |
ポリゴン | polygon()を使用して画像にポリゴンを描画できます メソッド。 |
行 | line()を使用して画像に線を引くことができます メソッド |
例
次のJavaの例では、空白のOpenCV画像にさまざまな形状を描画します-
import org.opencv.core.Core; import org.opencv.core.Mat; import org.opencv.core.MatOfPoint; import org.opencv.core.Point; import org.opencv.core.RotatedRect; import org.opencv.core.Scalar; import org.opencv.core.Size; import org.opencv.imgcodecs.Imgcodecs; import org.opencv.imgproc.Imgproc; import org.opencv.highgui.HighGui; public class DrawingGeometricalShapes { public static void main(String args[]) { System.loadLibrary( Core.NATIVE_LIBRARY_NAME ); Mat src = Imgcodecs.imread("D:\\blank.jpg"); Scalar color = new Scalar(0, 0, 120); //Drawing a Circle Imgproc.circle(src, new Point(75, 65), 40, color, Imgproc.FILLED); // Drawing an Ellipse Imgproc.ellipse(src, new RotatedRect(new Point(330, 60), new Size(100, 65), 180), color, Imgproc.FILLED); //Drawing a line Imgproc.line(src, new Point(540,30), new Point(540, 90), color, 5); //Drawing filled polygon List<MatOfPoint> list = new ArrayList(); list.add(new MatOfPoint ( new Point(410, 60), new Point(430, 30), new Point(470, 30), new Point(490, 60), new Point(470, 100), new Point(430, 100)) ); Imgproc.fillPoly (src, list, color, 8); //Drawing a Rectangle Imgproc.rectangle(src, new Point(150, 30), new Point(250, 95),color, Imgproc.FILLED); HighGui.imshow("Geometrical shapes", src); HighGui.waitKey(); } }
出力
-
Java OpenCVライブラリを使用してネガティブイメージをポジティブイメージに変換するにはどうすればよいですか?
ネガティブイメージをポジティブに変換するには- ImageIO.read()メソッドを使用して必要な画像を読み取ります。 画像の高さと幅を取得します。 ネストされたforループを使用すると、画像の各ピクセルをトラバースします。 getRGB()メソッドを使用してピクセル値を取得します。 ピクセルから各値を取得するには、各色の開始位置に右シフトする必要があります。つまり、赤の場合はアルファ16の場合は24、赤の場合はビット単位で操作し、0Xffで操作します。これにより、変数がマスクされ、最後の8ビットが残り、残りのビットはすべて無視されます。 新しい赤、緑、青
-
Java OpenCVライブラリを使用してイメージを作成するにはどうすればよいですか?
OpenCVライブラリを使用すると、画像フィルタリング、幾何学的画像変換、色空間変換、ヒストグラムなどの画像処理操作を実行できます。 画像を書く Imgcodecsクラスのimread()メソッドを使用して画像のコンテンツを読み取るたびに、結果がMatrixオブジェクトに読み込まれます。 imwrite()メソッドを使用してイメージを書き込み/保存できます。これは2つのパラメータ、つまり-を受け入れます ファイル −結果を保存するファイルパスを表す文字列値。 Img −保存する画像のデータを含むマトリックスオブジェクト。 例 次のJavaの例は画像の内容を読み取りますc