OpenCV.jsを動かしてみる + デモ
約 4 分
目次
概要
OpenCV.jsを試してみました。
環境
OpenCV.js v4.1.0
OpenCV.jsのセットアップ
OpenCVをWasmにビルドします。
https://tech-blog.s-yoshiki.com/2018/09/544/
デモではこちらを拝借します。
https://docs.opencv.org/4.1.0/opencv.js
https://docs.opencv.org/4.1.0/opencv.js
サンプルソース
グレースケール
let src = cv.imread(srcCanvasId);
let dst = new cv.Mat();
cv.cvtColor(src, dst, cv.COLOR_RGBA2GRAY, 0);
cv.imshow(dstCanvasId, dst);
2値化
let src = cv.imread(srcCanvasId);
let dst = new cv.Mat();
let gray = new cv.Mat();
cv.cvtColor(src, gray, cv.COLOR_RGBA2GRAY, 0);
cv.threshold(gray, dst, 126, 255, 1);
cv.imshow(dstCanvasId, dst);
Cannyエッジ
let src = cv.imread(srcCanvasId);
let dst = new cv.Mat();
let gray = new cv.Mat();
cv.Canny(src, dst, 100, 200);
cv.imshow(dstCanvasId, dst);
輪郭抽出
let src = cv.imread(srcCanvasId);
let dst = cv.Mat.zeros(src.rows, src.cols, cv.CV_8UC3);
let contours = new cv.MatVector();
let hierarchy = new cv.Mat();
cv.cvtColor(src, src, cv.COLOR_RGBA2GRAY, 0);
cv.adaptiveThreshold(
src,
src,
200,
cv.ADAPTIVE_THRESH_GAUSSIAN_C,
cv.THRESH_BINARY,
3,
2,
);
cv.findContours(
src,
contours,
hierarchy,
cv.RETR_CCOMP,
cv.CHAIN_APPROX_SIMPLE,
);
for (let i = 0; i < contours.size(); ++i) {
let color = new cv.Scalar(
Math.round(Math.random() * 255),
Math.round(Math.random() * 255),
Math.round(Math.random() * 255),
);
cv.drawContours(dst, contours, i, color, 1, cv.LINE_8, hierarchy, 100);
}
cv.imshow(dstCanvasId, dst);
ガウシアン
let src = cv.imread(srcCanvasId);
let dst = new cv.Mat();
cv.cvtColor(src, src, cv.COLOR_RGBA2GRAY, 0);
cv.adaptiveThreshold(
src,
dst,
200,
cv.ADAPTIVE_THRESH_GAUSSIAN_C,
cv.THRESH_BINARY,
3,
2,
);
cv.imshow(dstCanvasId, dst);
デモ
おすすめの記事
最新の記事
よく読まれている記事
タグから探す
- javascript130
- typescript67
- node.js54
- linux54
- 画像処理48
- amazon-aws48
- アルゴリズム37
- canvas35
- html529
- 画像処理100本ノック27
- php24
- centos24
- python22
- 競技プログラミング21
- mac21
- mysql20
- opencv17
- 雑談16
- 機械学習16
- docker16
- wordpress15
- atcoder14
- apache12
- データベース12
- amazon-s312
- red-hat12
- prisma12
- ubuntu11
- github10
- git10
- react10
- mariadb10
- vue.js9
- next.js9
- aws-cdk9
- css38
- 可視化8
- 小ネタ8
- nestjs8
- amazon-lightsail7
- ブログ6
- cms6
- oracle6
- perl6
- gitlab6
- iam5
- amazon-ec25
- 資格試験5
- aws-amplify5
- curl4