Вывод строки в зависимости от цвета, обнаруженного в видеопотоке

81
5

поэтому то, что я пытаюсь сделать, это вывести определенную строку в зависимости от цвета, который я вижу в видеопотоке. Ибо сейчас я сделал порог для корма, так что все выше определенной яркости появляется как красный. Теперь я хочу иметь что-то, что говорит, если в фиде есть красный цвет, тогда я выводю "1" в текстовое поле в моем пользовательском интерфейсе, в котором отображается фид. Если нет красного цвета, я выводю "0" в текстовое поле. Я использую Emgu CV Managed C++ с VS2010, может ли кто-нибудь мне помочь? Спасибо.

Это код, который у меня до сих пор работает неправильно, что дает мне ошибку компилятора.

cvConvertScaleAbs(frameFromCamera->Ptr.ToPointer(),frameDisplay->Ptr.ToPointer(),double(1)/16,0);
cvCvtColor(frameDisplay->Ptr.ToPointer(),frameColorDisplay->Ptr.ToPointer(),CV_GRAY2BGR);
cvThreshold(frameDisplay->Ptr.ToPointer(),maskSaturated->Ptr.ToPointer(),200,255,CV_THRESH_BINARY);
cvNot(maskSaturated->Ptr.ToPointer(),mask1->Ptr.ToPointer());
cv::Scalar red(0,0,255);
cvSet(frameColorDisplay->Ptr.ToPointer(),red,maskSaturated->Ptr.ToPointer());

highColor = gcnew Emgu::CV::Image<Bgr,UInt16>(0, 0, 255);
lowColor = gcnew Emgu::CV::Image<Bgr,UInt16>(0, 0, 200);

if(maskSaturated->InRange(lowColor, highColor) == 255){
tbMorse->Text ="1";
}
else{
tbMorse->Text = "0";
}
imageMain->Image=frameColorDisplay;

и у меня есть highColor и lowColor, инициализированные в моем заголовке как таковые

Emgu::CV::Image<Bgr,UInt16> ^lowColor;
Emgu::CV::Image<Bgr,UInt16> ^highColor;

и ошибка, которую он мне дает

 BAOTFISInterface.cpp(1010): error C2664: 'Emgu::CV::Image<TColor,TDepth>::Image(int,int,Emgu::CV::Structure::Bgr)' : cannot convert parameter 3 from 'int' to 'Emgu::CV::Structure::Bgr'
with
[
TColor=Emgu::CV::Structure::Bgr,
TDepth=unsigned short
]
No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
BAOTFISInterface.cpp(1011): error C2664: 'Emgu::CV::Image<TColor,TDepth>::Image(int,int,Emgu::CV::Structure::Bgr)' : cannot convert parameter 3 from 'int' to 'Emgu::CV::Structure::Bgr'
with
[
TColor=Emgu::CV::Structure::Bgr,
TDepth=unsigned short
]
No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
BAOTFISInterface.cpp(1013): error C2664: 'Emgu::CV::Image<TColor,TDepth> ^Emgu::CV::Image<TColor,TDepth>::InRange(Emgu::CV::Image<TColor,TDepth> ^,Emgu::CV::Image<TColor,TDepth> ^)' : cannot convert parameter 1 from 'Emgu::CV::Image<TColor,TDepth> ^' to 'Emgu::CV::Image<TColor,TDepth> ^'
with
[
TColor=Emgu::CV::Structure::Gray,
TDepth=unsigned char
]
and
[
TColor=Emgu::CV::Structure::Bgr,
TDepth=unsigned short
]
and
[
TColor=Emgu::CV::Structure::Gray,
TDepth=unsigned char
]
No user-defined-conversion operator available, or
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast

спросил(а) 2014-07-18T18:51:00+04:00 6 лет, 3 месяца назад
0
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема