Главная > Soft > Сравнение работы с камерой в OpenCV на Python и Java

Сравнение работы с камерой в OpenCV на Python и Java

Работая над проектом вездехода с трансляцией картинки пришлось задуматься, а правильно ли выбран основной язык разработки — Java. В последнее время Python приобрёл большую популярность и широко используется в приложениях машинного обучения и работы с видео на OpenCV. Это было решено проверить на простом получении картинки, т.к. данная часть является наиболее важной в моём проекте.

Сравнение работы с камерой в OpenCV на Python и Java

 Для эксперимента было подготовлено два простых приложения, которые 60 раз читали картинку с камеры.

Java:

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.videoio.VideoCapture;
import org.opencv.videoio.Videoio;

public class SimpleTestOpenCV {
	public static void main(String[]args) {		
		System.loadLibrary(Core.NATIVE_LIBRARY_NAME);  

		VideoCapture camera = new VideoCapture(0);  
        camera.set(Videoio.CV_CAP_PROP_FRAME_WIDTH, 320);  
        camera.set(Videoio.CV_CAP_PROP_FRAME_HEIGHT, 240);  
          
   		long startTime = System.currentTimeMillis();        	
        	
   		int index = 0;  
        Mat frame = new Mat();  
        while(index < 60){  
        	if (camera.read(frame)){}  
           	index++;
        }  
		long endTime = System.currentTimeMillis();     
		
		System.out.println("Time: " + (endTime - startTime));
		
		camera.release();
	}
}

Python:

import cv2
import time

cam = cv2.VideoCapture(0)
cam.set(cv2.CAP_PROP_FRAME_WIDTH, 320)
cam.set(cv2.CAP_PROP_FRAME_HEIGHT, 240)

index = 0

startTime = time.time()*1000

while (index < 60):
    frame = cam.read()
    index+=1

endTime = time.time()*1000

print("Time " + str(endTime - startTime));

cam.release()

Код на Python имеет меньший размер, чище, что даёт «преимущество» перед привычной Java. А вот в скорости выполнения на Windows 7 выигрыша никакого не было. Оба приложения выполнились за 2820 миллисекунд +/- 20. Данное обстоятельство говорит о том, что интерпретируемые языки одинаково медленные, как бы вы не упрощали синтаксис.

Categories: Soft Tags: , ,
  1. Kiria
    9 Май 2017 в 12:06 | #1

    В синтаксисе Python можно запутаться, смесь невесть чего. Проще начать, но потом сущий ад. Я полностью на cтороне Java.




    2



    1
  2. max
    27 Август 2017 в 13:01 | #2

    Вам не приходило в голову, что «производительность» данного куска кода упирается не в язык, а в скорость, с которой с камеры снимаются кадры? Так что говорить о том, что скорость питона равна скорости Java, глядя на этот код, мягко говоря, не обоснованно




    0



    0
    • Admin
      27 Август 2017 в 18:02 | #3

      Может и так, нужно доказательство. Суть в том, что нет разницы, что использовать — python или java.




      0



      0
  1. Пока что нет уведомлений.