如何在Emgu CV项目中利用OpenCL的优势?
我是使用Emgu CV的新手,并开始创建小型示例项目,例如面部检测,眼睛检测等.如果我可以利用OpenCL使用GPU加速过程,那将是很好的.否则,当我降低比例尺factor时,它会导致大量的CPU利用率.我怎样才能做到这一点?谢谢. 据我所知, 解决方案 (从 emgu 查看页面的引导)UMat图像格式使用OpenCL引擎自动使用. 首先,您必须将OPENCL设置为CvInvoke.UseOpenCL = true的true,然后您需要创建UMat图像格式,然后尝试处理该图像. 至少这是 emgu neld. 我尝试了此操作,它增加了很多.
0 2023-05-19
编程技术问答社区
opencv (emgucv)在osx的unity中不能工作?
我在那个时刻,我只是想知道是否有人在osx中​​的unity untimity? 有很多有关dllnotfoundExceptions and Unity的技巧.就我而言,所有人都不起作用.我花了四天的时间搜索和尝试所有事情. 确切的错误是: system.typeiniatialization exception:Emgu.cv.ocr.ocrinvoke的类型初始化器引发了一个例外---> System.Typeinitialization exception:Emgu.cv.cvinvoke-cvinvoke ----> System的类型初始化器抛出了一个例外.dllnotfoundException:资产/插件/emgucv.bundle/contents/macos/libopencv_core.3.0.0.dylib at(包装器管理到本地) 请访问emgu.cv.cvinvoke..cctor()[0x001f7] in/users/lev/docume
4 2023-05-15
编程技术问答社区
如何避免由MinAreaRect检测到的矩形的旋转?
我试图检测Windows形式上的文本字段,但CvInvoke.MinAreaRect(contour)返回矩形,旋转-7.29419661角度. 我的代码是 Image a = new Image(@"d:/Art/documents/Projects/InputFieldsDetector/Images/Form345_1.PNG"); imageBox1.Image = a; UMat grayed = new UMat(); CvInvoke.CvtColor(a, grayed, ColorConversion.Bgr2Gray); imageBox2.Image = grayed; UMat canny = new UMat(); CvInvoke.Canny(grayed, canny, 5
4 2023-05-10
编程技术问答社区
在冲浪检测器算法中寻找兴趣点
我已经努力了,但是我无法在EMGU CV中找到Surf算法的单个兴趣点.我为冲浪编写了代码.而且我有一些问题,有时会在我的数字" 1"部分附近进行if语句,而有时则不是基于不同的图像.为什么会这样?根据该同构象的计算,以无效.比我能够绘制圆圈或线条.也有问题.圆形或矩形在图像上的0,0点绘制. 请帮我.我会很感激. public Image Draw(Image conditionalImage, Image observedImage, out long matchTime) { //observedImage = observedImage.Resize(, INTER.CV_INTER_LINEAR); Stopwatch watch; HomographyMatrix homography = null; SURFDetector
2 2023-05-10
编程技术问答社区
OpenCv和EmguCv的等同方法?
正如Berak在评论中所说的那样,该代码似乎已弃用 在OpenCV中有一个方法" cvmget",示例用法是: bool niceHomography(const CvMat * H) { const double det = cvmGet(H, 0, 0) * cvmGet(H, 1, 1) - cvmGet(H, 1, 0) * cvmGet(H, 0, 1); if (det 4 || N1
0 2023-05-10
编程技术问答社区
使用EmguCV进行骨架化
我正在尝试使用EMGUCV在C#中进行骨骼化.我正在此页面底部的示例中,该样本在C ++中,我尝试了一下,并且可以使用: 骨架/ 我将鳕鱼转换为c#如下: Image eroded = new Image(img2.Size); Image temp = new Image(img2.Size); Image skel = new Image(img2.Size); skel.SetValue(0); CvInvoke.cvThreshold(img2, img2, 127, 256, 0); StructuringElementEx element = new StructuringElementEx(3, 3, 1, 1, Emgu.C
0 2023-05-10
编程技术问答社区
如何获得形状被矫正后的像素点的坐标?
我正在使用emgucv包装器进行openCV,我正在纠正这种形状: 在此代码的帮助下: public Image Rectify() { try { Image warped_Image = new Image(input_Image.Width, input_Image.Height); MCvScalar s = new MCvScalar(0, 0, 0); PointF[] dsts = new PointF[4]; dsts[0] = new PointF(0, 0); dsts[2] = new PointF(0, input_Image.Height); dsts[3] = new PointF(input_Im
2 2023-05-10
编程技术问答社区
右侧 用EmguCv进行人脸检测
大家好, 我在C#中使用EMGUCV进行面部检测和识别项目,因此我已经采取了一些步骤: - 检测前脸和左脸 - 认识面孔 但是问题当我想检测到脸的右侧时,它无效,因为分类器profile.xml只是为左侧工作,我找到了一些镜子的想法,但是我不知道该怎么做. 所以如果有人有任何想法,我会很高兴. 穆罕默德·哈萨尔(Mohammed Hassar). 解决方案 有一个flip()函数: html#flip
4 2023-05-10
编程技术问答社区
在OpenCV中使用SURF来匹配图像EmguCV
我正在从这里. > 似乎indices变量存储了匹配信息,但我不知道如何存储信息. 例如,您能告诉我找到了多少个匹配的积分吗?哪个点匹配了哪个点? 解决方案 在这条线上看看. Image result = Features2DToolbox.DrawMatches(modelImage, modelKeyPoints, observedImage, observedKeyPoints, indices, new Bgr(255, 255, 255), new Bgr(255, 255, 255), mask, Features2DToolbox.KeypointDrawType.DEFAULT); 最重要的变量是 mask .该变量都需要信息.它是数组.如果此数组上的值等于1,则意味着我们有一个共同的对.您必须计算在此数组中出现多少次. public int CountHowManyPairsExist( Ma
8 2023-05-10
编程技术问答社区
将cv::Mat从C++传递到C#(托管)。
我正在编写用于在C#中使用C ++代码的包装器. 我的功能应该返回cv::Mat回到C#,但是我找不到将Mat传递给C#的方法. 示例: 我想拥有这样的东西: cv::Mat MyProject::ReturnColorMat() { return _colorMat; } 我知道C#正在与Emgu一起工作,两者之间是否有转换? 我尝试通过Mat的byte array,这有效,但是我想通过Mat本身. 甚至可能吗? 解决方案 您可以在C#中创建一个COM界面,并从中生成一个.tlb文件,可以在C ++中使用 像这样,您可以使用相同的界面来参考托管对象. c# [ComVisible(true)] [Guid("12345678-3914-41F0-BB26-122986A93788")] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
0 2023-05-10
编程技术问答社区
Emgu.CV.CvInvoke抛出了一个异常。
我在我的项目中使用emgu. 我得到了这个,除了: 在这里,例外的详细信息: opencv_core242在文件夹项目中,平台目标设置为x86. 知道什么可能导致例外以及如何解决? 解决方案 您可以使用看一下这个​​问题.. 其他解决方案 在.../Windows/System32 i粘贴cudart32_42_9.dll file.t file.t toss file.
2 2023-05-10
编程技术问答社区
检测图像中的圆形图案
我有一个图像.在此图像中,有一些垂直线,在这些线中,出现了一些圆形/椭圆形或凸模式.我想使用EMGUCV/OPENCV检测这些圆形/椭圆形或凸模式的位置.你们中的任何人都可以在这方面帮助我吗? 这是我想找到圆形/椭圆模式的图像: 等待您的帮助. 解决方案 您可以使用Hough Transform API查找圆圈. 其他解决方案 您可以尝试 CV_RETR_EXTERNAL) 应用形态操作仅检测斑点(打开应该解决;通常MORPH_RECT应该这样做,但请尝试更多尺寸以查看哪个是最适合您的目的的) 现在您只有通缉区.如果您需要一个点,则可以: 再次检测轮廓(仅用于斑点) 计算每个轮廓的平均点 或应用 aments y aments 找到每个区域的中心
0 2023-05-10
编程技术问答社区
负载训练的SVM - Emgu CV
我对SVM和对象识别是新的,目前正在尝试使用EMGU CV 3.0训练SVM,将其保存到文件中,然后加载(用于hogdescriptor.setsvmdetector中). ). 但是,除其他问题外,我无法找到加载SVM的方法. 到目前为止,我的代码基本上要执行以下操作: SVM myFirstSVM = new SVM(); // do some stuff, set some parameters... myFirstSVM.Train(someParameters); myFirstSVM.Save("filePath"); 从这里开始,问题在于重新加载被保存后的SVM.我已经检查了几个帮助主题和页面,以及我唯一可以找到与OpenCV有关的内容,该内容使用以下方法: SVM mySecondSVM; mySecondSVM.load("filePath"); 但是,我在EMGU 3.0中找不到方法" .load()",尽管它似乎存在于先前版
2 2023-05-10
编程技术问答社区
Emgu.CV.CvInvoke抛出了一个异常。
我在我的项目中使用emgu. 我得到了这个,除了: 在这里,例外的详细信息: opencv_core242在文件夹项目中,平台目标设置为x86. 知道什么可能导致例外以及如何解决? 解决方案 您可以使用看一下这个​​问题.. 其他解决方案 在.../Windows/System32 i粘贴cudart32_42_9.dll file.t file.t toss file.
4 2023-05-10
编程技术问答社区
与cvextern.dll文件有关的错误(c#中的opencv)。
当我添加此文件(cvextern.dll)以引用或使用CMD命令CSC ..我得到此错误 致命错误CS0009:无法打开元数据文件" file_path" - '试图加载具有错误格式的程序. ' 为什么会发生这种情况?我该如何解决? 谢谢大家 解决方案 汉斯·帕斯特(Hans Passant)的评论是正确的.使用EMGU时,文件cvextern.dll应复制到您的输出文件夹中,该文件夹在该文件夹中运行或添加到项目中作为现有项目.然后选择"解决方案资源管理器"中的项目,然后将其属性更改为"复制到输出目录"的属性.请参阅 http://www.emgu.com/wiki/wiki/wiki/wiki/wiki/index.php/index.php/index.php/downloadload_and_and_installation_installationalation/a >有关正确使用文件的更多信息. 欢呼 克里斯
0 2023-05-10
编程技术问答社区
如何在EMGUCV 3.1上拍摄相机的屏幕截图?
我在Emgu CV上执行非常简单的程序,因此我需要对相机录制的内容进行屏幕截图,并将其保存在特定的文件夹中,以下是我的相机捕获代码: ImageViewer viewer = new ImageViewer(); VideoCapture capture = new VideoCapture(); Application.Idle += new EventHandler(delegate (object sender, EventArgs e) { viewer.Image = capture.QueryFrame(); }); viewer.ShowDialog(); 我为简单的条款表示歉意,我仍然在编程中确实菜鸟. 解决方案 似乎您刚刚发布了EMGUCV Wiki的标准代码.但是,让我尝试解释如何在计算机上显示网络摄像头的视频供稿并在按下按钮时
2 2023-05-10
编程技术问答社区
如何获得形状被矫正后的像素点的坐标?
我正在使用emgucv包装器进行openCV,我正在纠正这种形状: 在此代码的帮助下: public Image Rectify() { try { Image warped_Image = new Image(input_Image.Width, input_Image.Height); MCvScalar s = new MCvScalar(0, 0, 0); PointF[] dsts = new PointF[4]; dsts[0] = new PointF(0, 0); dsts[2] = new PointF(0, input_Image.Height); dsts[3] = new PointF(input_Im
0 2023-05-10
编程技术问答社区
安装EMGU的问题
当前文档 在Visual Studio中创建一个新项目 要在Visual Studio中使用框架,您需要 下载并提取二进制文件软件包emgu.cv.windows.binary- {version} .zip 有关使用Visual Studio和C#下的依赖项的完整指南,请参见C#教程. 没有链接.我找不到emgu.cv.windows.binary- {version} .zip的下载位置.我在安装后的任何地方都找不到此文件. 安装说明是否错误?这些是在emgu nuget套件之一中找到的吗?如果是这样,哪一个? 另外,我与各种口味或C#OpENCV包装器以及所有各种安装指令感到困惑. 帮助获得OpenCV C#包装器运行将不胜感激. 解决方案 啊是... emgu.cv文档的喜悦. 请确保在下面包括两个 nuget软件包.后来包括所需的二进制文件:
14 2023-05-10
编程技术问答社区
EmguCV在图像标签中显示Mat C# WPF
是否有一种方法可以在C#? 中的WPF图像中显示垫子对象 Mat image= CvInvoke.Imread(op.FileName, Emgu.CV.CvEnum.ImreadModes.AnyColor); 另外,是否有一种方法可以借鉴画布/图像标签内的图像,而不是imshow打开的新窗口? CvInvoke.Imshow("ponaredek", slika); ,最后,对于开头,最好使用哪个? emgucv或常规opencv? 解决方案 如果要显示WPF内部阅读的图像,则可以使用XAML中找到的图像源.您应该将垫子对象转换为位图,然后将位图转换为图像源对象,因为要显示图像需要.此 stack 此处的形式很好地详细介绍了如何做到这一点. > 首先将垫子对象转换为位图. //Convert the Mat object to a bitmap Bitmap img = image.ToBitmap(); //Using the method
4 2023-05-10
编程技术问答社区
图像上的形态学操作
我目前正在进行一个项目,我正在尝试使用EMGU CV中的C#中的手血管模式来识别人类. 首先使用自适应阈值函数处理手的灰度图像. 现在,我想使用形态操作创建图像的面具. 目的是从图像中删除噪音. 这是自适应阈值图像: 请指导我使用哪些功能以及如何使用. 解决方案 此处的代码在C ++中.移植到C#不难,因为它主要是OpenCV函数调用.您可以将其用作指南.抱歉. 您可以使用小内核应用打开操作来消除大多数噪声: Mat1b opened; Mat kernel = getStructuringElement(MORPH_ELLIPSE, Size(3, 3)); morphologyEx(thresholded, opened, MORPH_OPEN, kernel); 您可以看到,仍然存在一些噪音,并且您无法通过其他形态操作将其删除.您可以将最大的斑点视为正确的斑点(在此处为绿色): 然后您可以在手的内部泛滥(在此处为灰色): 并将其设置为原始图
0 2023-05-10
编程技术问答社区