使用OpenCV.JS进行颜色检测

时间:2018-03-01 17:59:31

标签: javascript opencv image-processing computer-vision color-detection

我使用OpenCV在Javascript中进行开发。

我试图在任何图像中检测(255,80,0)和(255,170,0)之间橙色RGB颜色的变化。

我试图像https://docs.opencv.org/3.3.1/db/d64/tutorial_js_colorspaces.html那样做同样的事情,但是当我从黑色检测变为橙色检测时,它无法正常工作。

我尝试了以下代码和许多其他组合,但却出乎意料。

那么,如何选择ORANGE颜色的限制?

这里是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(); 

这是unexpected result

2 个答案:

答案 0 :(得分:0)

如果RGB空间中的橙色大约是[255,170,0],我建议扩大你的范围:

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

在您的设置中,您的橙色需要具有R = 255和B = 0,这在实际图像中不会发生。我不知道第四个参数选择了什么(alpha通道?)所以它都在范围内。

答案 1 :(得分:0)

这是OpenCV JS的演示,您可以从喜欢的图像中选择目标颜色范围。

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

下面的输出

enter image description here