簡體   English   中英

使用 OpenCV.JS 進行顏色檢測

[英]Color detection with OpenCV.JS

我使用 OpenCV 在 Javascript 中進行開發。

我正在嘗試檢測任何圖像中橙色 RGB 顏色在 (255, 80, 0) 和 (255, 170, 0) 之間的變化。

我試圖在這里做同樣的事情https://docs.opencv.org/3.3.1/db/d64/tutorial_js_colorspaces.html ,但是當我從黑色檢測更改為橙色檢測時它不起作用。

我嘗試了以下代碼和許多其他組合,但出乎意料。

那么,如何選擇橙色的界限呢?

這是 javascript 代碼:

let lower = [230, 155, 0, 0];
let higher = [255, 195, 25, 255];
let src = cv.imread('canvasInput');
let dst = new cv.Mat();
let low = new cv.Mat(src.rows, src.cols, src.type(), lower);
let high = new cv.Mat(src.rows, src.cols, src.type(), higher);
cv.inRange(src, low, high, dst);
cv.imshow('canvasOutput', dst);
src.delete(); dst.delete(); low.delete(); high.delete(); 

這是意想不到的結果

如果橙色在 RGB 空間中約為 [255, 170, 0],我建議擴大您的范圍:

let lower = [230, 155, 80, 0];
let higher = [255, 195, 120, 255];

在您的設置中,您的橙色需要恰好具有 R=255 和 B=0,這在真實圖像中是不會發生的。 我不知道第四個參數選擇什么(alpha 通道?)所以它都在范圍內。

這是OpenCV JS的演示,您可以從喜歡的圖像中選擇目標顏色范圍。

https://alexcpn.github.io/opencvjsdemo.html

更新:此鏈接已斷開

輸出如下

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM