我知道这似乎是一个被问过一百万次的问题,这肯定有帮助,但我还没能找到任何可以帮助我解决具体问题的事情。总的来说,我的项目集中在检测一个闪烁的LED,它闪烁摩尔斯电码,然后翻译摩尔斯电码。到目前为止我所做的是我已经对图像进行了阈值处理,以便只显示LED,其他一切都是黑色的。 LED发出的光是红色的。所以我想要开始做的是打印出" 0"或" 1"取决于LED是打开还是关闭。但是,我不确定如何检测图像中的任何颜色。以下是我目前正在处理的代码部分
if(frameFromCamera->InRange(new Bgr(0, 0, 200),new Bgr(0, 0, 255)) == 255){
tbMorse->Text ="1";
}
else{
tbMorse->Text = "0";
}
但是我收到以下错误。
BAOTFISInterface.cpp(1010): error C2664: 'Emgu::CV::Image<TColor,TDepth> ^Emgu::CV::Image<TColor,unsigned short>::InRange(Emgu::CV::Image<TColor,unsigned short> ^,Emgu::CV::Image<TColor,unsigned short> ^)' : cannot convert parameter 1 from 'Emgu::CV::Structure::Bgr *' to 'Emgu::CV::Image<TColor,TDepth> ^'
with
[
TColor=Emgu::CV::Structure::Gray,
TDepth=unsigned char
]
and
[
TColor=Emgu::CV::Structure::Gray,
TDepth=unsigned short
]
No user-defined-conversion operator available, or
Cannot convert an unmanaged type to a managed type
有谁知道如何解决这个问题?我使用的是VS2010,所以我必须使用EMGU cv格式来使用OpenCV库。这都是在托管C ++中。我会接受任何我能得到的指示或建议。