Tag: emgucv

通过OpenCV的camshift算法控制鼠标指针(或鼠标基本上如何工作)

我使用EmguCV(openCV的包装器)在C#中编写了一个程序。 程序使用camshift算法跟踪对象。 在对象周围绘制一个矩形。 光标移动到矩形的中心。 输入来自网络摄像头。 最初的问题是光标无法覆盖整个屏幕。 它的移动仅限于框架尺寸。 所以我应用了一个乘法因子: 在X方向上移动的screenwidth / framewidth。 屏幕高度/框架高度在Y方向上移动 有了它,鼠标覆盖整个区域。 但鼠标移动不再平滑。 我无法指出两个紧密相连的图标。 如何在覆盖整个屏幕时使鼠标移动平滑,就像真正的鼠标一样?

在emgucv中查找轮廓点

我正在使用emguCV来查找轮廓基本点然后将此点保存在文件中,并且用户将来重新绘制此形状。 所以,我的目标是这个形象: 例 我的解决方案是:1。将图像导入到图片框2.使用canny算法进行边缘检测3.找到轮廓并保存点 我在下面的代码中找到了很多分数但是我不能用这一点绘制第一个形状! using Emgu.CV; using Emgu.Util; private void button1_Click(object sender, EventArgs e) { Bitmap bmp = new Bitmap(pictureBox1.Image); Image img = new Image(bmp); Image gray = img.Convert().PyrDown().PyrUp(); Gray cannyThreshold = new Gray(80); Gray cannyThresholdLinking = new Gray(120); Gray circleAccumulatorThreshold = new Gray(120); Image cannyEdges = gray.Canny(cannyThreshold, cannyThresholdLinking).Not(); Bitmap color; Bitmap bgray; IdentifyContours(cannyEdges.Bitmap, […]

一段时间后,IP Camera停止流式传输

我正在开发一个应用程序,我想使用IP camera显示video流,以及对IP Camera捕获的图像进行一些其他主要操作。 摄像头捕获中使用的库用于摄像头捕获: Emgu.CV库 下面是我在C#中使用的代码。 变量声明 private Capture capture; //takes images from camera as image frames private Emgu.CV.UI.ImageBox img; // Dynamic Picture Controls private int nCam; // no of cameras 处理图像的代码 private void ProcessFrame(object sender, EventArgs arg) { try { // Live Streaming Display Image ImageFrame = capture.QueryFrame(); // If Ip camera try to […]

使用OpenCV获取二进制图像中白色像素数的最快方法

使用OpenCV获取二进制图片中白色像素数的最快方法是什么? 有没有比使用两个for循环并逐像素地访问图像更快的东西?

在线程之间锁定图像的麻烦

我需要在两个不同的线程中获取一个锁,以便访问EmguCv中的Bitmap(从网络摄像头填充)。 我有一个“GetFrame”函数查询相机并将它返回到.NET位图。 我有两个线程需要访问这个Bitmap,一个需要写入Bitmap并将Bitmap分配给一个图片框,另一个需要读取Bitmap,将其转换为Image对象并将其分配给EMGU ImageBox。 我首先锁定一个任意对象,然后我做我的操作。 代码如下(_Camera.LiveFrame是Bitmap): 写作/阅读线程: while (_CaptureThreadRunning) { lock (_Camera) { // _Camera.GetFrame writes to the Bitmap if (_VideoPlaying && _Camera.GetFrame(500)) pbLiveFeed.Invalidate(); } } _Camera.CloseCamera(true); _CaptureExitEvent.Set(); // Set to signal captureThread has finished 阅读/ ImageBox线程: while (_ProcessThreadRunning) { lock (_Camera) { // _Camera.LiveFrame is the Bitmap procImage = new Image((Bitmap)_Camera.LiveFrame.Clone()); procImage.Draw(new Rectangle(10,20,20,15),new Bgr(Color.LightGreen), […]

在C#中使用emguCV转换为灰度

我是EmguCV的新手。 我想将rgb图像转换为灰度图像。 对于转换,我使用了代码 Image grayImage = ColordImage.Convert(); 现在,当我在C#中编译此代码时,它没有给出任何错误,但是当我运行它时,几秒钟之后,它在这行代码中给出了exception,OpenCV不支持这种类型的转换。 现在任何人都可以帮我解决这个问题。 关心Amal

访问违规例外之谜

我已经使用EMGU + OpenCV很长一段时间了,并遇到了这个AccessViolationException之谜。 首先,代码: class AVE_Simulation { public static int Width = 7500; public static int Height = 7500; public static Emgu.CV.Image[] Images; static void Main(string[] args) { int N = 50; int Threads = 5; Images = new Emgu.CV.Image[N]; Console.WriteLine(“Start”); ParallelOptions po = new ParallelOptions(); po.MaxDegreeOfParallelism = Threads; System.Threading.Tasks.Parallel.For(0, N, po, new Action((i) => […]

如何实现光流跟踪器?

我正在使用OpenCV包装器–Emgu CV,我正在尝试使用光流实现运动跟踪器,但我无法找到一种方法来组合从OF算法检索的水平和垂直信息: flowx = new Image(size); flowy = new Image(size); OpticalFlow.LK(currImg, prevImg, new Size(15, 15), flowx, flowy); 我的问题是不知道如何组合垂直和水平运动的信息,以建立移动物体的跟踪器? 一个新的形象? 顺便说一句,有一种简单的方法来显示当前帧的流信息? 提前致谢。

Emgu CV从video文件中获取所有帧

我想请你帮我用Emgu CV从video文件中获取所有帧。 我知道我可以使用Capture类及其QueryFrame()方法,但这只返回一帧。 获取所有帧的最简单方法是什么? (并将其保存为例如Image[] )我需要所有帧进行更多处理(更具体地说:video摘要的关键帧提取)。 非常感谢你的帮助。

如何使用EmguCV和C#绘制直方图

我需要绘制两种类型的直方图,即单维和立体。 我是EMGU的新手,我在网上找到的所有样本都是用C ++或C.是否有使用C#和Emgucv的样本? 谢谢你的帮助。