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(); // 메모리 해제