JavaScript

OpenCV, openCV.js

폴리프레임 2024. 9. 16. 11:17
반응형

OpenCV와 OpenCV.js는 동일한 라이브러리 기반이지만, 기능과 사용 방식에서 몇 가지 차이가 있습니다

 

언어 및 플랫폼

 

  • OpenCV: 주로 C++, Python, Java와 같은 여러 언어에서 사용할 수 있으며, 데스크탑 애플리케이션 개발에 많이 사용됩니다.
  • OpenCV.js: OpenCV의 JavaScript 버전으로, 브라우저 환경에서 사용됩니다. WebAssembly를 사용하여 성능을 최적화했으며, 브라우저에서 컴퓨터 비전 기능을 구현할 수 있습니다.

성능

 

  • OpenCV: C++로 작성되었기 때문에 성능이 뛰어나며, 네이티브 환경에서 GPU와 같은 하드웨어 가속을 쉽게 사용할 수 있습니다.
  • OpenCV.js: WebAssembly로 동작하기 때문에 성능이 상당히 좋지만, 브라우저에서의 제약 때문에 네이티브 환경만큼 빠르지는 않습니다. GPU 가속도 제한적입니다.

지원 기능

 

  • OpenCV: 전체 OpenCV 기능을 지원하며, 특히 고성능 애플리케이션, 머신러닝, 딥러닝, GPU 가속과 같은 고급 기능을 포함합니다.
  • OpenCV.js: OpenCV의 주요 기능을 제공하지만, 모든 기능을 지원하지는 않습니다. 특히 고급 기능, GPU 가속, 일부 딥러닝 기능은 사용할 수 없습니다. 그러나 기본적인 이미지 처리 및 컴퓨터 비전 작업은 충분히 가능합니다.

사용환경

 

  • OpenCV: 데스크탑 애플리케이션 또는 서버 측에서 주로 사용됩니다.
  • OpenCV.js: 브라우저에서 바로 실행되는 웹 애플리케이션을 위한 라이브러리로, 별도의 설치 없이 사용할 수 있습니다.

OpenCV ( Python )

import cv2
img = cv2.imread('image.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.imshow('Gray Image', gray)
cv2.waitKey(0)
cv2.destroyAllWindows()

 

 

 

 

OpenCV (JavaScript )

let imgElement = document.getElementById('imageSrc');
let inputImage = cv.imread(imgElement);
let grayScale = new cv.Mat();
cv.cvtColor(inputImage, grayScale, cv.COLOR_RGBA2GRAY);
cv.imshow('canvasOutput', grayScale);

grayScale.delete();  // 메모리 해제
inputImage.delete();  // 메모리 해제