{"id":3333,"date":"2021-07-23T09:37:53","date_gmt":"2021-07-23T09:37:53","guid":{"rendered":"https:\/\/www.bearloga.space\/?page_id=3333"},"modified":"2021-07-23T09:37:54","modified_gmt":"2021-07-23T09:37:54","slug":"opencv-ispolzovanie-kamery","status":"publish","type":"page","link":"https:\/\/www.bearloga.space\/uk\/opencv-ispolzovanie-kamery\/","title":{"rendered":"OpenCV \u2014 \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u0430\u043c\u0435\u0440\u044b"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">\u0412 \u044d\u0442\u043e\u0439 \u0433\u043b\u0430\u0432\u0435 \u043c\u044b \u0443\u0437\u043d\u0430\u0435\u043c, \u043a\u0430\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c OpenCV \u0434\u043b\u044f \u0437\u0430\u0445\u0432\u0430\u0442\u0430 \u043a\u0430\u0434\u0440\u043e\u0432 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0439 \u043a\u0430\u043c\u0435\u0440\u044b.&nbsp;\u041a\u043b\u0430\u0441\u0441&nbsp;<strong>VideoCapture<\/strong>&nbsp;\u043f\u0430\u043a\u0435\u0442\u0430&nbsp;<strong>org.opencv.videoio<\/strong>&nbsp;\u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043a\u043b\u0430\u0441\u0441\u044b \u0438 \u043c\u0435\u0442\u043e\u0434\u044b \u0434\u043b\u044f \u0437\u0430\u0445\u0432\u0430\u0442\u0430 \u0432\u0438\u0434\u0435\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u0430\u043c\u0435\u0440\u044b.&nbsp;\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0439\u0434\u0435\u043c \u0448\u0430\u0433 \u0437\u0430 \u0448\u0430\u0433\u043e\u043c \u0438 \u0443\u0437\u043d\u0430\u0435\u043c, \u043a\u0430\u043a \u0437\u0430\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u043a\u0430\u0434\u0440\u044b \u2014<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u0428\u0430\u0433 1: \u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0435 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 OpenCV<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u041f\u0440\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u043a\u043e\u0434\u0430 Java \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 OpenCV \u043f\u0435\u0440\u0432\u044b\u0439 \u0448\u0430\u0433, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c, \u044d\u0442\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 OpenCV \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e&nbsp;<strong>loadLibrary ()<\/strong>&nbsp;.&nbsp;\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0435 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 OpenCV, \u043a\u0430\u043a \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u043d\u0438\u0436\u0435.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\/\/ Loading the core library \nSystem.loadLibrary(Core.NATIVE_LIBRARY_NAME);\n<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u0428\u0430\u0433 2. \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043a\u043b\u0430\u0441\u0441\u0430 \u0437\u0430\u0445\u0432\u0430\u0442\u0430 \u0432\u0438\u0434\u0435\u043e<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u043a\u043b\u0430\u0441\u0441\u0430 Mat, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043b\u044e\u0431\u0443\u044e \u0438\u0437 \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u044b\u0445 \u0432 \u044d\u0442\u043e\u043c \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0435 \u0440\u0430\u043d\u0435\u0435.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\/\/ Instantiating the VideoCapture class (camera:: 0) \nVideoCapture capture = new VideoCapture(0);\n<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u0428\u0430\u0433 3: \u0427\u0442\u0435\u043d\u0438\u0435 \u043a\u0430\u0434\u0440\u043e\u0432<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u043a\u0430\u0434\u0440\u044b \u0441 \u043a\u0430\u043c\u0435\u0440\u044b, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043c\u0435\u0442\u043e\u0434\u00a0<strong>read ()<\/strong>\u00a0\u043a\u043b\u0430\u0441\u0441\u0430\u00a0<strong>VideoCapture<\/strong>\u00a0.\u00a0\u042d\u0442\u043e\u0442 \u043c\u0435\u0442\u043e\u0434 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043e\u0431\u044a\u0435\u043a\u0442 \u043a\u043b\u0430\u0441\u0441\u0430\u00a0<strong>Mat<\/strong>\u00a0\u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u043d\u043d\u043e\u0433\u043e \u043a\u0430\u0434\u0440\u0430.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\/\/ Reading the next video frame from the camera \nMat matrix = new Mat(); \ncapture.read(matrix);\n<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u043f\u0440\u0438\u043c\u0435\u0440<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442, \u043a\u0430\u043a \u0437\u0430\u0445\u0432\u0430\u0442\u0438\u0442\u044c \u043a\u0430\u0434\u0440 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u0430\u043c\u0435\u0440\u044b \u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c \u0435\u0433\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043e\u043a\u043d\u0430 JavaFX.&nbsp;\u042d\u0442\u043e \u0442\u0430\u043a\u0436\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0437\u0430\u0445\u0432\u0430\u0447\u0435\u043d\u043d\u044b\u0439 \u043a\u0430\u0434\u0440.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">import java.awt.image.BufferedImage;\nimport java.awt.image.DataBufferByte;\nimport java.awt.image.WritableRaster;\n\nimport java.io.FileNotFoundException;\nimport java.io.IOException;\n\nimport javafx.application.Application;\nimport javafx.embed.swing.SwingFXUtils;\nimport javafx.scene.Group;\nimport javafx.scene.Scene;\nimport javafx.scene.image.ImageView;\nimport javafx.scene.image.WritableImage;\nimport javafx.stage.Stage;\n\nimport org.opencv.core.Core;\nimport org.opencv.core.Mat;\nimport org.opencv.imgcodecs.Imgcodecs;\nimport org.opencv.videoio.VideoCapture;\n\npublic class CameraSnapshotJavaFX extends Application {\n   Mat matrix = null;\n\n   @Override\n   public void start(Stage stage) throws FileNotFoundException, IOException {\n      \/\/ Capturing the snapshot from the camera\n      CameraSnapshotJavaFX obj = new CameraSnapshotJavaFX();\n      WritableImage writableImage = obj.capureSnapShot();\n\n      \/\/ Saving the image\n      obj.saveImage();\n\n      \/\/ Setting the image view\n      ImageView imageView = new ImageView(writableImage);\n\n      \/\/ setting the fit height and width of the image view\n      imageView.setFitHeight(400);\n      imageView.setFitWidth(600);\n\n      \/\/ Setting the preserve ratio of the image view\n      imageView.setPreserveRatio(true);\n\n      \/\/ Creating a Group object\n      Group root = new Group(imageView);\n\n      \/\/ Creating a scene object\n      Scene scene = new Scene(root, 600, 400);\n\n      \/\/ Setting title to the Stage\n      stage.setTitle(\"Capturing an image\");\n\n      \/\/ Adding scene to the stage\n      stage.setScene(scene);\n\n      \/\/ Displaying the contents of the stage\n      stage.show();\n   }\n   public WritableImage capureSnapShot() {\n      WritableImage WritableImage = null;\n\n      \/\/ Loading the OpenCV core library\n      System.loadLibrary( Core.NATIVE_LIBRARY_NAME );\n\n      \/\/ Instantiating the VideoCapture class (camera:: 0)\n      VideoCapture capture = new VideoCapture(0);\n\n      \/\/ Reading the next video frame from the camera\n      Mat matrix = new Mat();\n      capture.read(matrix);\n\n      \/\/ If camera is opened\n      if( capture.isOpened()) {\n         \/\/ If there is next video frame\n         if (capture.read(matrix)) {\n            \/\/ Creating BuffredImage from the matrix\n            BufferedImage image = new BufferedImage(matrix.width(), \n               matrix.height(), BufferedImage.TYPE_3BYTE_BGR);\n            \n            WritableRaster raster = image.getRaster();\n            DataBufferByte dataBuffer = (DataBufferByte) raster.getDataBuffer();\n            byte[] data = dataBuffer.getData();\n            matrix.get(0, 0, data);\n            this.matrix = matrix;\n            \n            \/\/ Creating the Writable Image\n            WritableImage = SwingFXUtils.toFXImage(image, null);\n         }\n      }\n      return WritableImage;\n   }\n   public void saveImage() {\n      \/\/ Saving the Image\n      String file = \"E:\/OpenCV\/chap22\/sanpshot.jpg\";\n\n      \/\/ Instantiating the imgcodecs class\n      Imgcodecs imageCodecs = new Imgcodecs();\n\n      \/\/ Saving it again \n      imageCodecs.imwrite(file, matrix);\n   }\n   public static void main(String args[]) {\n      launch(args);\n   }\n}<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u0412\u044b\u0445\u043e\u0434<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u041f\u0440\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0432\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0432\u044b\u0432\u043e\u0434.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/coderlessons.com\/wp-content\/uploads\/2019\/07\/capture_frame_using_camera.jpg\" alt=\"\u0417\u0430\u0445\u0432\u0430\u0442 \u043a\u0430\u0434\u0440\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u0430\u043c\u0435\u0440\u044b\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u0415\u0441\u043b\u0438 \u0432\u044b \u043e\u0442\u043a\u0440\u043e\u0435\u0442\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0439 \u043f\u0443\u0442\u044c, \u0432\u044b \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u044c \u0442\u043e\u0442 \u0436\u0435 \u043a\u0430\u0434\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u0432\u0438\u0434\u0435 \u0444\u0430\u0439\u043b\u0430 jpg.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0412 \u044d\u0442\u043e\u0439 \u0433\u043b\u0430\u0432\u0435 \u043c\u044b \u0443\u0437\u043d\u0430\u0435\u043c, \u043a\u0430\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c OpenCV \u0434\u043b\u044f \u0437\u0430\u0445\u0432\u0430\u0442\u0430 \u043a\u0430\u0434\u0440\u043e\u0432 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0439 \u043a\u0430\u043c\u0435\u0440\u044b.&nbsp;\u041a\u043b\u0430\u0441\u0441&nbsp;VideoCapture&nbsp;\u043f\u0430\u043a\u0435\u0442\u0430&nbsp;org.opencv.videoio&nbsp;\u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043a\u043b\u0430\u0441\u0441\u044b \u0438 \u043c\u0435\u0442\u043e\u0434\u044b \u0434\u043b\u044f \u0437\u0430\u0445\u0432\u0430\u0442\u0430 [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"categories":[108],"tags":[],"class_list":["post-3333","page","type-page","status-publish","hentry","category-opencv"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.bearloga.space\/uk\/wp-json\/wp\/v2\/pages\/3333","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bearloga.space\/uk\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.bearloga.space\/uk\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.bearloga.space\/uk\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bearloga.space\/uk\/wp-json\/wp\/v2\/comments?post=3333"}],"version-history":[{"count":0,"href":"https:\/\/www.bearloga.space\/uk\/wp-json\/wp\/v2\/pages\/3333\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.bearloga.space\/uk\/wp-json\/wp\/v2\/media?parent=3333"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bearloga.space\/uk\/wp-json\/wp\/v2\/categories?post=3333"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bearloga.space\/uk\/wp-json\/wp\/v2\/tags?post=3333"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}