Я хочу обнаружить красные и зеленые объекты с веб-камеры. Я использую эту библиотеку Trackingjs. Я думаю, что в библиотеке он будет отслеживать красное, зеленое и синее значение объекта и определять цвет в соответствии со встроенной библиотекой цветов в своем коде.Обнаружить цвет на основе его RGB
Их встроенные цвета определяются следующим образом:
tracking.ColorTracker.registerColor('purple', function(r, g, b) {
var dx = r - 120;
var dy = g - 60;
var dz = b - 210;
if ((b - g) >= 100 && (r - g) >= 60) {
return true;
}
return dx * dx + dy * dy + dz * dz < 3500;
});
В приведенном выше примере, объекты которых имеют свои blue - green >= 100
и red -green >= 60
будет purple
.
Может кто-нибудь объяснить это мне, как это работает. И если я хочу обнаружить красный/красноватый и зеленый/зеленоватый, как мне сделать с той же функцией.
Это очень хорошее знание, чтобы знать. Красный работает правильно, но с зеленым. Мой зеленый цвет Я хочу обнаружить от огурца, который темно-зеленый. Когда я попробовал код для зеленого, он обнаруживает больше светло-зеленого цвета, так как он обнаруживает только те части, которые отражают свет на огурце. Есть ли у вас предложения? Мой код в данный момент для зеленого: 'if ((g-r)> = 50 && (g-b)> = 10) { return true; } ' –
В зависимости от того, какую ОС вы используете, вы можете использовать программу« Digital Color Meter »для проверки значений RGB, которые вы пытаетесь обнаружить, а затем разработать формулу, которая ее обнаруживает ... http://innolea.com/ легко обнаружить-rgb-и-html-hex-code-of-colors/2308 Или, может быть, вам просто нужно '&& g <64', чтобы найти только темную зелень. Или, может быть, вам нужно преобразовать в цветовое пространство HSL и искать оттенки около 0,3. –