Я пытаюсь запустить следующий код:
#include<opencv\cv.h>
#include<opencv\highgui.h>
using namespace cv;int main() {
VideoCapture cap;
cap.open(0);while (1) {
Mat src;
Mat threshold;
cap.read(src);
inRange(src, Scalar(0, 0, 0), Scalar(255, 0, 0), threshold);
imshow("thr", threshold);
imshow("hsv", src);
waitKey(33);
}
return 0;
}
Но похоже, что он не фильтруется, потому что при запуске кода появляется только пустое окно.
Как получить этот код для обнаружения красных цветов?
Вы должны изменить inRange
функционировать так:
inRange(src, Scalar(0, 0, 0), Scalar(255, 255, 255), threshold);
Если вы пытаетесь установить пороговое значение только для первого канала (синий канал), то вам нужно освободить другие каналы, поэтому установите его на 0
в lawerb
И его dtype
, обычно 255
за np.uint8
Например.
inRange(src, Scalar(0, 50, 0), Scalar(255, 100, 255), threshold);
эта строка будет сравнивать 2-й канал (зеленый канал) и игнорировать другие.
Других решений пока нет …