在c#中执行多个图像的平均化
我希望从与我拥有的相同大小的3个不同图像中计算出平均图像.我知道这可以在MATLAB中轻松完成..但是如何在C#中解决这个问题?还有我可以直接用于此目的的aforge.net工具吗? 解决方案 我找到了一篇文章,因此可能会指向正确的方向.这是代码(不安全) BitmapData srcData = bm.LockBits( new Rectangle(0, 0, bm.Width, bm.Height), ImageLockMode.ReadOnly, PixelFormat.Format32bppArgb); int stride = srcData.Stride; IntPtr Scan0 = srcData.Scan0; long[] totals = new long[] {0,0,0}; int width = bm.Width; int height = bm.Height;
4 2024-04-26
编程技术问答社区
垂直直方图和水平直方图
如何获得垂直直方图或文本图像的水平直方图,以将文本分割成线和连接的单词? 我使用了Aforge: HorizontalIntensityStatistics his = new HorizontalIntensityStatistics(pic); Histogram histogram = his.Gray; 但是它不起作用,我看不到直方图. 解决方案 您将无法看到直方图中的某些图表组件,而您将无法看到一些东西. Aforge生成的Histogram是每行(Values属性中的int属性的数组)的总和(对于HorizontalIntensityStatistics)或列(VerticalIntensityStatistics)的列表(表示为Values属性的数组). . 如果您在白色背景上有黑色文本的完美二进制图像,则表示线条之间的像素行将全白,因此它们在VerticalIntensityStatistics中的价值将为(imageWid
10 2024-04-25
编程技术问答社区
C#中的单张图片到视频
我一直在使用Aforge来操纵图像,现在我需要将单个图像转换为视频.我有效的代码,但是一旦添加图像路径,它就会输出一个空视频.我猜是非常简单的事情,但是由于我对C#一无所知,所以我需要每个过程的每个步骤. 有人可以帮我吗? using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Drawing.Imaging; using System.Drawing.Drawing2D; using System.Linq; using System.Text; using System.Windows.Forms; using AForge; using AForge.Video.FFMPEG; namespace VideoWriter { public partial
12 2024-04-25
编程技术问答社区
如何检测图像中的黑色子弹?
给定以下图像,我如何使用C#,EmGucv或Aforge在此图像中检测到黑子弹(90子弹)? 我尝试使用GetPixel(x,y)方法,但它仅通过像素检查像素,它非常慢,我需要检测子弹而不是像素. 解决方案 算法/想法1 您可以如本示例所示,将图像划分为正方形: 使用此逻辑,您只需要检查每20像素即可.一旦您知道第一个点在哪里,您就会知道其他每个点都必须位于同一水平线(在您提供的样本中). 样本算法看起来与此相似(请注意,它需要进一步改进): Bitmap myBitmap = new Bitmap ("input.png"); int skipX = 12; int skipY = 12; int detectedDots = 0; for (int x = 0; x
4 2024-04-24
编程技术问答社区
Aforge Blob Detection
如何从视频中检测非移动斑点? 让我们考虑一下我有一个视频和初始背景框架位图.是否可以检测不动的斑点/对象?并在该物体周围绘制矩形? 解决方案 这使我想起了一种算法,以检测地铁上被遗忘的对象.如果我没有错,您想检测未移动并且不在初始背景的对象吗?您可以应用此方法: 使用这样的初始图像(找不到真正空的地铁图像): 和带有添加静态对象(废物罐),地铁移动和等待的人的图像,可能会移动一点: 图像之后>阈值( 请注意,废物与其他不存在的物体如何出现. If you apply this similar process several times, let say every 10 seconds and then a Image>Intersect ( http://www.aforgenet.com/framework/framework/docs/html/7244211d-e882-e882-09b1-9665d-965d-dd203755af8be.h
12 2024-04-23
编程技术问答社区
AForge--使用带有多个摄像头的视频卡进行工作
我可以让Aforge使用USB Web摄像头,但是我有一张可以连接到多个摄像机的视频卡.我如何让Aforge使用视频卡? 我的问题是我无法将VideoInputDevice设置为工作视频输入. 代码是这样的: void init(){ FilterInfoCollection videoCaptureDevice = new FilterInfoCollection(FilterCategory.VideoInputDevice); VideoCaptureDevice finalVideo = new VideoCaptureDevice(videoCaptureDevice[0].MonikerString); finalVideo.NewFrame += new NewFrameEventHandler(finalVideo_NewFrame); finalVideo.Start(); } p
14 2024-04-22
编程技术问答社区
使用AForge对Kinect视频进行C#图像处理
我的目标是: 使用Kinect视频进行形状识别(图片上的大矩形),在图片上绘制矩形以突出显示结果并显示. 我使用的技术: c#代码, Aforge,更具体地说是其形状检查器 http://www.aforgenet.com/articles/articles/articles/shape_checker/ > 魔术应该如何工作: 每次准备就绪帧时,我都会将帧数据作为字节数组,然后将其转换为位图,以允许我分析它 应用形状识别算法 渲染结果... 我的问题: 到目前为止,整个过程都可以正常工作,但是当我尝试将结果呈现为WPF图像时,它会滞后...(每10秒1帧)... 我的代码: // AllFramesReady is called every time a frame is ready to use... private void AllFramesReady(object sender, AllFramesReadyEventArg
6 2024-04-22
编程技术问答社区
我怎样才能识别这些图片中的字母的颜色?
我正在使用问题是,它目前依赖于黑色的字母,并且由于每个验证码具有不同的文本颜色,因此我需要将颜色传递给图像清洁器,或者将字母的颜色更改为黑色.要做任何一个,我需要知道字母的现有颜色是什么. 我将如何确定字母的颜色? 解决方案 使用答案 @robert Harvey♦我去了并使用 LockBits 和unsafe提高其速度的方法.您必须使用"允许不安全的代码"标志编译.请注意,从图像返回的像素的顺序是bgr不是rgb格式,我正在使用Format24bppRgb格式锁定位图,以强迫它使用3个字节每颜色. public unsafe Color GetTextColour(Bitmap bitmap) { BitmapData bitmapData = bitmap.LockBits(new Rectangle(0, 0, bitmap.Width, bitmap.Height), ImageLockMode.ReadOnly, PixelFormat.Format
6 2024-04-21
编程技术问答社区
如何设置视频分辨率?
我正在与Aforge合作,我正在尝试从USB网络摄像头设置视频提要的分辨率,以便在Picturebox中正确适合.我的目标是800x600的分辨率,但是我得到的默认分辨率约为640x480.当我尝试设置分辨率时,我会收到"无法修改Readonly字段的成员"的消息.有Aforge经验的人是否有任何想法/解决方案? 解决方案 完全:desiredFrameSize属性已过时.您必须使用VideoResolution属性;例如,使用分辨率号0: yourvideoSource.VideoResolution = yourvideoSource.VideoCapabilities[0]; 数组的数量代表不同的分辨率. 使用以下命令确定可用分辨率和维度的数量: yourvideoSource.VideoCapabilities.Length; for (int i = 0; i
6 2024-04-20
编程技术问答社区
在C#中使用的AForge.Video.FFMPEG
我使用Visual C#2008,并想从BMP序列编写AVI文件. 我找到了aforge.video.vwf,但它仅适用于" vmw3"或" dib"编解码器,我想使用aforge.video.ffmpeg,但有错误. 例如,我只是代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; using AForge.Video.FFMPEG; namespace ConsoleApplication4 { class Program { static void Main(string[] args) { VideoFileWriter vfw = new VideoFileWriter(); } } } 但是我得到了这个filenotfoundexc
8 2024-04-19
编程技术问答社区
自动增强扫描的图像
我正在开发一个例程,以自动增强扫描的35毫米幻灯片.我正在寻找一种良好的算法,以增加对比度和去除颜色.该算法必须完全自动,因为将要处理数千个图像.这些是直接来自扫描仪的几个示例图像,仅裁剪和缩小用于网络: 我正在使用aforge.net库,并尝试了HistogramEqualization和ContrastStretch滤波器. HistogramEqualization有益于最大化本地对比,但总体上不会产生令人愉悦的结果. ContrastStretch效果更好,但是由于它分别伸展每个颜色带的直方图,因此有时会产生强烈的颜色: 为了减少颜色移位,我创建了UniformContrastStretch使用ImageStatistics和LevelsLinear类过滤自己.对于所有颜色带,它都使用相同的范围,以保持颜色为代价较少. . ImageStatistics stats = new ImageStatistics(image); int min =
2 2024-04-17
编程技术问答社区
使用C#查找图像中的表
我正在尝试编写一个可以拍摄图像的函数,并仅使用emgu.cv或magick.net或aforge.net返回一个图像列表 例如,对于下图,函数应在图像中的两个表中返回2个图像. private static List FindTables(Image img) { var masterImage = (Bitmap)img; var image = new Image(masterImage); var copyImg = new Image(masterImage); List tables = new List //Find all tables and add to tables variable return tables; } 解决方案 您可以使用ImageMagick中的连接组件来做到这一点.滤除所有小区域,即文本字符,仅留下较
4 2024-04-17
编程技术问答社区
如何从图像序列文件创建视频文件?
我有400个序列图像. 我想从他们那里创建视频文件(剪辑.. mpeg) 我下载了'aforge.net',我尝试研究它是否可能 - 但是我没有任何好处. 我该怎么做? 解决方案 查找文档,找到 ://www.aforgenet.com/framework/docs/html/165a1d14-e61e-28b-5123-4b91a0e82561.htm" http://www.aforgenet.com/framework/docs/html/f778a996-56fb-7ce3-7639-7639-2a46a46aa6d5f00.htm" rel =" noreferrer" .".答对了.那里的一半. 如果您在阅读方法的签名时无法连接点( WriteVideoFrame(Bitmap) )或不明白如何使用Open() overloads or Close()方法(您为什么不,最后两个对于文件i/o来说很常见)您可以始终 google" videofilew
2 2024-04-14
编程技术问答社区
如何初始化AForge网络摄像头
我试图写一个小小的代码,以使用Aforge捕获框架 我提到了aforge.dll和aforge.video.directshow.dll 代码在下面,但我做错了什么. 我得到的警告"在当前上下文中不存在" videodevices"名称. 我认为这必须与我尝试创建该变量的位置有关,但是我不确定在何处放置该按钮的代码以将其初始化. 该错误也显示在Visual Studio中,作为对象" Videodevices"下的红线 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using AForge; using AForge.Video.DirectShow; names
8 2024-04-12
编程技术问答社区
图像聚焦计算
我正在尝试为某些测试自动化工作开发焦点算法的图像.我选择使用aforge.net,因为它似乎是一个不错的成熟.net友好系统. 不幸的是,我似乎找不到有关从头开始构建自动对焦算法的信息,所以我给了我最好的尝试: 拍摄图像.应用Sobel边缘检测过滤器,该滤波器生成灰度边缘轮廓.生成直方图并保存标准开发.将摄像机移到一个接近主题的一步中,然后拍摄另一张照片.如果标准开发人员小于以前的开发人员,那么我们将获得更多的焦点.否则,我们已经超越了拍照的最佳距离. 有更好的方法吗? 更新:顺便说一句,这很大.当我获得过去的最佳焦点点时,我的"焦点图像"值继续增长.您会期望抛物线功能从距离/焦点值来看,但实际上您会得到更对数 的东西 更新2:好的,所以我回到了这个,我们探索的当前方法得到了一些已知的边缘(好吧,我确切地知道图片中的对象是什么),我做了一个手动像素强度比较.随着结果图变得越来越陡峭,我会更加焦点.核心算法从MATLAB移植到C#(是的,Matlab ..:S)
2 2024-04-12
编程技术问答社区
在C#中查找图像中的颜色
我在这里偶然发现了此YouTube视频 http://www.youtube.com/watch?v = ha5lficisjm 证明了使用Aforge.net框架进行颜色检测的人.我想复制该作者所做的事情,但我不确定如何进行一些图像处理. 看来,aforge.net框架使您可以以位图格式从视频源中拉下图像.我的问题是谁能指出我的方向或提供有关如何询问位图对象以查找特定颜色的指导? (例如 - 如果图像中有"红色"或"紫色" x秒,我想提出一个事件" colordetected"左右...) 有人对从哪里开始有任何建议吗? 谢谢, -r. 编辑:我需要走整个位图对象并询问颜色的每个像素吗?像这样: http://msdn.microsoft.com/en-us/library/system.drawing.bitmap.getpixel.aspx 解决方案 好吧,您可以随时使用GDI+方法. Bitmap b = new Bitmap( "so
2 2024-04-11
编程技术问答社区
将Kinect ColorImageFrame转换为位图
我使用XNA的Kinect(Microsoft SDK).我想将GRATF用于标记识别 如何将Kinect ColorImageFrame的数据转换为System.Drawing.Bitmap或AForge.Imaging.UnmanagedImage我可以使用Gratf处理? void kinectSensor_ColorFrameReady(object sender, ColorImageFrameReadyEventArgs e) { Bitmap bitmap = null; ColorImageFrame frame = e.OpenColorImageFrame(); byte[] buffer = new byte[frame.PixelDataLength]; frame.CopyPixelData(buffer); // how to convert the data in buffer to a bitmap?
2 2024-04-11
编程技术问答社区
图像序列到视频流?
就像许多人似乎已经有过(这里有几个线程),我正在寻找从一系列图像创建视频的方法. 我想在C#! 中实现我的功能 这是我不想做的: /*Pseudo code*/ void CreateVideo(List imageSequence, long durationOfEachImageMs, string outputVideoFileName, string outputFormat) { // Info: imageSequence.Count will be > 30 000 images // Info: durationOfEachImageMs will be
4 2024-04-10
编程技术问答社区
将经过阈值处理的图像转换为字节数组?
有人可以告诉我有关如何将存储在"位图"变量中的阈值的图像转换为字节数组中,并在C#中查看文本框或文本文件中的字节数组? 有人可以帮助我使用代码吗? 我已经使用aforge.net进行了图像 - 链接.并尝试在1s和0s中查看其字节数组. 谢谢. 解决方案 如果您的图像是位图,则可以使用 lockbits ,然后 scan0 方法: http://msdn.microsoft.com/query/query/dev11.query?query? .drawing.imaging.bitmapdata); k(targetFrameWorkMoniker-.netFrameWork,版本%3DV4.5); k(devlang-csharp)&rd = true public static Byte[] BmpToArray(Bitmap value) { BitmapData data = value.LockBits(new Re
10 2024-04-05
编程技术问答社区
AForge图像处理例外
我正在尝试使用 aforge 在由此: Dim sourceImage As Bitmap = Bitmap.FromFile("C:\1.bmp") Dim template As Bitmap = Bitmap.FromFile("C:\2.bmp") 其他: Dim sourceImage As Bitmap = ResizedBitmap1 Dim template As Bitmap = ResizedBitmap2 问题是,当我尝试将方法与调整大小的位图一起使用时,我会得到以下例外:Unsupported pixel format of the source使用此stacktrace: aforge.imaging.unsupportedImageFormateXception毫无手感 hresult = -2147024809消息=源的未支撑像素格式 或模板图像.来源= aforge.imaging stacktrace: en aforge.i
6 2024-03-31
编程技术问答社区