我集成了我的项目在Visual Studio 2010与Emgu 3.0和我正在处理检测对象项目,但是当我使用MCvFont像下面的行我得到错误,因为库缺少,这个库从Emgu的最后一个版本中删除或者什么?MCvFont库在Emgu 3.0缺失
MCvFont f2 = new MCvFont(Emgu.CV.CvEnum.FONT.CV_FONT_HERSHEY_TRIPLEX, 1.0, 1.0);
我集成了我的项目在Visual Studio 2010与Emgu 3.0和我正在处理检测对象项目,但是当我使用MCvFont像下面的行我得到错误,因为库缺少,这个库从Emgu的最后一个版本中删除或者什么?MCvFont库在Emgu 3.0缺失
MCvFont f2 = new MCvFont(Emgu.CV.CvEnum.FONT.CV_FONT_HERSHEY_TRIPLEX, 1.0, 1.0);
Emgu.CV.CvEnum.FONT.CV_FONT_HERSHEY_TRIPLEX
可以在Emgu 3.0 Emgu.CV.CvEnum.FontFace.HersheyTriplex
。
MCvFont
目前在Emgu.CV.Structure
在Emgu_2.4.10, 但它在Emgu_3.0.0缺少。我在emgu版本历史中检查了这一点。
您可以通过附加治愈这个代码从Emgu_2.4.10参考Emgu.CV, 抓住这个DLL https://dropmefiles.com/AZvmM
指令转换2.4.x的代码到3.0,可以发现http://www.emgu.com/wiki/index.php/Tutorial#Upgrading_from_Emgu_CV_2.x_to_3.x
你做面部或眼睛识别? 这是我的第一个答案在计算器:)
真的,我在最后使用了Emgu 2.4来解决这个错误,并且在3.0版本中出现了另一个错误。 关于你的问题不,我不做脸或眼睛rec。只有我正在处理图像中的检测对象。 谢谢你在堆栈溢出世界的第一个答案:) –
CvInvoke.PutText(img,
"Hello, world",
new System.Drawing.Point(10, 80),
FontFace.HersheyComplex, 1.0,
new Bgr(0, 255, 0).MCvScalar);
参考: http://www.emgu.com/wiki/index.php/Hello_World_in_CSharp#Emgu_CV_3.0_2
你必须给一个简单的扩展 –
我不想增加额外的dll有与Emgu的2.X版本向后保持兼容代码在Emgu的3.x版本中编写。正如@КонстантинМарков在他的回答中指出的那样,MCvFont不再是Emgu 3.x版本库的一部分。
我假设你的最终目标是在图像中写入一些文本。所以,我不介意更改代码,您需要重写它以便使用方法CvInvoke.PutText来实现该目标。
根据用于上述方法的官方文档page,CvInvoke.PutText
呈现与指定的字体和颜色的图像中的文本。打印的文本被ROI矩形裁剪。指定字体不属于 的符号将替换为矩形符号。
这是在C#
public static void PutText(
IInputOutputArray img,
string text,
Point org,
FontFace fontFace,
double fontScale,
MCvScalar color,
int thickness = 1,
LineType lineType = LineType.EightConnected,
bool bottomLeftOrigin = false
)
下面方法签名被用于在该方法中的每个参数的描述
Emgu.CV.IInputOutputArray
System.String
System.Drawing.Point
Emgu.CV.CvEnum.FontFace
System.Double
Emgu.CV.Structure.MCvScalar
System.Int32
Emgu.CV.CvEnum.LineType
System.Boolean
这是从这个source
using Emgu.CV;
using Emgu.CV.CvEnum;
using Emgu.CV.Structure;
using Emgu.CV.UI;
using System.Drawing;
...
//Create a 3 channel image of 400x200
using (Mat img = new Mat(200, 400, DepthType.Cv8U, 3))
{
img.SetTo(new Bgr(255, 0, 0).MCvScalar); // set it to Blue color
//Draw "Hello, world." on the image using the specific font
CvInvoke.PutText(
img,
"Hello, world",
new System.Drawing.Point(10, 80),
FontFace.HersheyComplex,
1.0,
new Bgr(0, 255, 0).MCvScalar);
//Show the image using ImageViewer from Emgu.CV.UI
ImageViewer.Show(img, "Test Window");
}
直取代码示例您已经添加在Visual Studio项目的引用,该库?你的代码的顶部是否有“使用......”声明,包括相关的库? – AgapwIesu
我添加了在我的计算机上安装的Emgu文件夹中找到的所有引用,然后是我调用了所有必需的库,但是此库已丢失当我通过代码调用它时找不到它 –
注意:我正在使用Windows虚拟机机器在Mac上。 –