我集成了我的項目在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上。 –