Commit 7ca22226 张士柳

更新日志记录接口

1 个父辈 53a9dc28
...@@ -12,6 +12,7 @@ namespace eyemLib_Sharp ...@@ -12,6 +12,7 @@ namespace eyemLib_Sharp
{ {
public unsafe class EyemLib public unsafe class EyemLib
{ {
#region 枚举 #region 枚举
//稳健估计方法 //稳健估计方法
...@@ -648,6 +649,9 @@ namespace eyemLib_Sharp ...@@ -648,6 +649,9 @@ namespace eyemLib_Sharp
//释放图像资源 //释放图像资源
[DllImport("eyemLib.dll", CharSet = CharSet.None, CallingConvention = CallingConvention.Cdecl)] [DllImport("eyemLib.dll", CharSet = CharSet.None, CallingConvention = CallingConvention.Cdecl)]
private static extern void eyemImageFree(ref EyemImage tpImage); private static extern void eyemImageFree(ref EyemImage tpImage);
// 设定日志回调
[DllImport("eyemLib.dll", CharSet = CharSet.None, CallingConvention = CallingConvention.Cdecl)]
private static extern void setLogCallback(TCallBack cb);
//测试用 //测试用
[DllImport("eyemLib.dll", CharSet = CharSet.None, CallingConvention = CallingConvention.Cdecl)] [DllImport("eyemLib.dll", CharSet = CharSet.None, CallingConvention = CallingConvention.Cdecl)]
...@@ -778,6 +782,33 @@ namespace eyemLib_Sharp ...@@ -778,6 +782,33 @@ namespace eyemLib_Sharp
private static extern int eyemAOIForTSAV(EyemImage tpRefImg, EyemImage tpNextImg, IntPtr tpArray, int iArraySize); private static extern int eyemAOIForTSAV(EyemImage tpRefImg, EyemImage tpNextImg, IntPtr tpArray, int iArraySize);
#endregion #endregion
// 日志回调
public delegate void TCallBack(string msg);
public static TCallBack sld = new TCallBack(TLogCallback);
public static event TCallBack OnNewLogCallback;
public static void TLogCallback(string msg)
{
OnNewLogCallback?.Invoke(msg);
}
public static void Init()
{
setLogCallback(sld);
OnNewLogCallback += new TCallBack(EyemLib_OnNewLogCallback);
}
private static void EyemLib_OnNewLogCallback(string msg)
{
Console.WriteLine(msg);
}
public static void Free()
{
setLogCallback(null); sld = null;
}
public static void eyemReadImageTool(string fileName) public static void eyemReadImageTool(string fileName)
{ {
...@@ -975,8 +1006,8 @@ namespace eyemLib_Sharp ...@@ -975,8 +1006,8 @@ namespace eyemLib_Sharp
tpRoi2.iWidth = 28; tpRoi2.iWidth = 28;
tpRoi2.iHeight = 9; tpRoi2.iHeight = 9;
double matchDeg = 0.80; //double matchDeg = 0.80;
flag = eyemCreateTemplateModel(tpDstImg, tpRoi2, matchDeg, "D:\\模板文件\\" + file.Replace(".png", ".tpl")); //flag = eyemCreateTemplateModel(tpDstImg, tpRoi2, matchDeg, "D:\\模板文件\\" + file.Replace(".png", ".tpl"));
//加载模板到内存 //加载模板到内存
IntPtr hModelID = IntPtr.Zero; IntPtr hModelID = IntPtr.Zero;
......
...@@ -10,11 +10,14 @@ namespace eyemLib_Sharp ...@@ -10,11 +10,14 @@ namespace eyemLib_Sharp
{ {
static void Main(string[] args) static void Main(string[] args)
{ {
//初始化
EyemLib.Init();
string[] fileNames = Directory.GetFiles(@"D:\批量测试图像\", "*.*", SearchOption.AllDirectories); string[] fileNames = Directory.GetFiles(@"D:\批量测试图像\", "*.*", SearchOption.AllDirectories);
//for (int j = 0; j < 250; j++) //for (int j = 0; j < 250; j++)
//{ //{
// ParallelOptions po = new ParallelOptions(); // ParallelOptions po = new ParallelOptions();
// po.MaxDegreeOfParallelism = 3; // po.MaxDegreeOfParallelism = 2;
// Parallel.ForEach(fileNames, po, fn => // Parallel.ForEach(fileNames, po, fn =>
// { // {
// EyemLib.eyemReadImageTool(fn); // EyemLib.eyemReadImageTool(fn);
...@@ -23,16 +26,16 @@ namespace eyemLib_Sharp ...@@ -23,16 +26,16 @@ namespace eyemLib_Sharp
//} //}
//EyemLib.eyemTest2(fileNames); //EyemLib.eyemTest2(fileNames);
//foreach (var item in fileNames) foreach (var item in fileNames)
//{
// EyemLib.eyemReadImageTool(item);
//}
for (int i = 0; i < 1; i++)
{ {
EyemLib.eyemTestVideoCapture("D:\\插件完成检测\\视频\\cap5.mp4"); EyemLib.eyemReadImageTool(item);
} }
//for (int i = 0; i < 1; i++)
//{
// EyemLib.eyemTestVideoCapture("D:\\插件完成检测\\视频\\cap5.mp4");
//}
//IntPtr hModelID; //IntPtr hModelID;
//EyemLib.eyemInitModelE(out hModelID); //EyemLib.eyemInitModelE(out hModelID);
...@@ -61,6 +64,8 @@ namespace eyemLib_Sharp ...@@ -61,6 +64,8 @@ namespace eyemLib_Sharp
//EyemLib.eyemReleaseModelE(ref hModelID); //EyemLib.eyemReleaseModelE(ref hModelID);
EyemLib.Free();
Console.Write("请按任意键继续。。。"); Console.Write("请按任意键继续。。。");
Console.ReadKey(); Console.ReadKey();
} }
......
#pragma once #pragma once
// //
// eyemEdgeͷ // eyemGenericͷ
// //
#ifndef __EYEM_GENERIC_H #ifndef __EYEM_GENERIC_H
#define __EYEM_GENERIC_H #define __EYEM_GENERIC_H
......
#include "eyemLib.h" #include "eyemLib.h"
int main() TCallback g_logger_cb = NULL;
void Logger::t(const std::string & msg)
{
std::string message(prefix_);
message += msg;
if (g_logger_cb) g_logger_cb(message.c_str());
}
// 趨־
void setLogCallback(TCallback cb)
{
if (!g_logger_cb)
{
g_logger_cb = cb;
}
}
void main()
{ {
char* filename = "D:\\Matlabͼ\\circle_plate_04.png"; char* filename = "D:\\Matlabͼ\\circle_plate_04.png";
cv::Mat src = cv::imread(filename, cv::IMREAD_UNCHANGED); cv::Mat src = cv::imread(filename, cv::IMREAD_UNCHANGED);
//EyemImage tpImage;
//tpImage.iHeight = src.rows;
//tpImage.iWidth = src.cols;
//tpImage.ucpImage = src.data;
//EyemRect tpRoi;
//tpRoi.iXs = 0;
//tpRoi.iYs = 0;
//tpRoi.iWidth = src.cols;
//tpRoi.iHeight = src.rows;
//int blobNum;
//IntPtr intptr;
//EyemBinBlob *blobs;
//eyemBinBlob(tpImage, tpRoi, 120, EYEM_BIN_WHITE, 1200, &intptr, &blobs, &blobNum);
////must be dispose
//eyemBinFree(intptr);
return 0; if (src.empty()) {
return;
}
return;
} }
\ No newline at end of file \ No newline at end of file
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
#define MAKETYPE CV_MAKETYPE #define MAKETYPE CV_MAKETYPE
#endif #endif
/********************************************************************************************/ /********************************************************************************************/
/* 通用标头 */ /* 通用标头 */
/********************************************************************************************/ /********************************************************************************************/
...@@ -864,4 +865,20 @@ extern "C" { ...@@ -864,4 +865,20 @@ extern "C" {
#endif #endif
// 日志回调定义
typedef void(__stdcall*TCallback)(const char* msg);
class Logger
{
public:
Logger(const std::string prefix = "") : prefix_(prefix) {}
public:
void t(const std::string& msg);
private:
std::string prefix_;
};
extern "C" __declspec(dllexport) void setLogCallback(TCallback cb);
#endif/* __EYEM_LIB_H */ #endif/* __EYEM_LIB_H */
此文件类型无法预览
...@@ -16,5 +16,7 @@ constexpr double c = PI / 180.; ...@@ -16,5 +16,7 @@ constexpr double c = PI / 180.;
std::mutex mtx_misc; std::mutex mtx_misc;
Logger logger;
#endif/* __EYEM_MISC_H */ #endif/* __EYEM_MISC_H */
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!