Tag: 图像处理

如何利用C#中的掩码数组快速将两个图像byte 数组组合在一起

简而言之,我有两个图像,我想使用一个掩码覆盖另一个,以便只显示第二个图像的一部分。 这是实时图像处理程序的一部分,因此我需要尽可能快地进行操作。 具体来说,我有两个32位图像BGR字节数组。 另外,我有一个表示图像掩码的字节数组。 我想生成一个新的字节数组,其中字节数组A使用掩码数组重叠在字节数组B的顶部,以决定使用哪个字节。 最快的方法是什么? 我正在看这篇关于老式精灵屏蔽的维基百科文章,但我不知道如何最好地将其转换为C#。 http://en.wikipedia.org/wiki/Mask_(computing ) 编辑:我忘了提到我可以重新构建任何或所有这些以使其运行得更快。

将Word文档转换为C#中的JPEG文件

我想将word文件[3或4页文档]的内容转换为C#中的JPEG文件。 我尝试过使用剪贴板选项,但它只转换第一页。 请帮我。

用于偏色去除的SVM图像标注的实现

我正在实现基于[ 1 ]的自动色偏移除 ,这看起来像一个强大,简单且性能良好的方法。 为了避免通过主要颜色(例如大片植被或水)去除内在投射,他们使用[ 2 ]描述的图像注释方法。 偏色检测器使用多类支持向量机将图像区域分类为天空,皮肤,植被,水或其他。 我的问题是[ 2 ]仅描述了该方法,它们不包括训练SVM所产生的超平面参数。 培训新的SVM超出了我的范围,但我没有找到任何类似的工作,包括即用型数据。 我真的很感激以下之一: A.使用[ 2 ]中的方法训练产生的一组超平面参数。 B.天空/皮肤/植被/水的一些其他图像标注方法,包括训练的参数或不需要训练。 C.一些包含天空/皮肤/植被/水的注释区域的免费图像数据库,我可以使用[ 2 ]中的方法训练新的SVM。 参考 F. Gasparini和R. Schettini“ 使用简单图像统计数字照片的色彩平衡 ” C. Cusano,G。Ciocca和R. Schettini“ 使用SVM进行图像标注 ”

C#转换屏幕截图数据

我需要截取屏幕截图,如果不保存则很容易。 我会将图像数据直接发送到PHP脚本。 因为我目前没有这个PHP脚本,所以我搜索最简单的格式,我应该转换截图数据。 出于调试原因,在我获得PHP脚本之前,我想使用C#在客户端转换这些数据的图片。 我的代码目前用于截取并转换它(我不确定我是否可以将我的日志文件中的输出转换回图片): internal static byte[] ImageToByteArray(Image img) { byte[] byteArray = new byte[0]; MemoryStream stream = new MemoryStream(); img.Save(stream, System.Drawing.Imaging.ImageFormat.Png); stream.Close(); byteArray = stream.ToArray(); return byteArray; } public static string TakeScreenshot() { String filepath = @”C:\log2.txt”; Bitmap bitmap = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height, PixelFormat.Format32bppArgb); Graphics graphics = Graphics.FromImage(bitmap); graphics.CopyFromScreen(Screen.PrimaryScreen.Bounds.X, Screen.PrimaryScreen.Bounds.Y, 0, 0, Screen.PrimaryScreen.Bounds.Size, […]

C# – 查找图像的边界(不是大小)

我正在开发一个应用程序来均匀地分割图像网格并使图像居中(基于它们的相似性)。 到目前为止,我可以设法修复一个小尺寸的图像网格,但每当我尝试更大的“精灵”大小(例如100×100)时,我就会出现Stack Overflow错误。 是的我正在使用递归,但每当检查一个像素时,我设置一个布尔值来停用它,将它复制到一个列表并继续检查其他(在所有方向),直到列表填满了来自网格。 我不确定这是否是最佳方式,因为对于每次调用,我调用相同的方法7次(假设有7个相邻的像素尚未检查)…直到没有剩余的像素来检查,并且我可以转到网格中的下一个图像。 我尝试跟踪错误开始发生的地方,检查了大约1600像素并将它们添加到列表中。 MyPixel是一个包含4个变量的类:x(int),y(int),color(Color)和checked(bool) public void processSprite(int i, int j) { //OOO //OXO //OOO pixeltemp.Add(new MyPixel(imap.pixels[i, j].x, imap.pixels[i, j].y, imap.pixels[i, j].color)); imap.pixels[i, j].read = true; //OOO //OOX //OOO try { if (!imap.pixels[i + 1, j].read) { if (imap.pixels[i + 1, j].color.A == 0) //Found a Border { imap.pixels[i + 1, j].read = […]

将BitmapFrame用于元数据而不锁定文件

我发现在WPF中获取图像元数据的常用方法是创建一个BitmapFrame对象并检查它上面的Metadata属性。 但是,我似乎无法创建满足以下两个要求的BitmapFrame对象: 不锁定文件 在给定某些文件时,不会抛出奇怪的,未记录的exception 使用这些行似乎可靠地创建BitmapImage : BitmapFrame.Create(new Uri(imageName)); BitmapFrame.Create(new Uri(imageName), BitmapCreateOptions.DelayCreation, BitmapCacheOption.None); 然而,他们将文件锁定了不确定的时间。 据我所知, BitmapFrame上没有dispose方法。 这样可以防止文件被锁定: BitmapFrame.Create(new Uri(imageName), BitmapCreateOptions.None, BitmapCacheOption.OnLoad); 但是在Vista上它会在某些文件上抛出ArgumentException和InvalidOperationException ,而在Win7上会抛出FileFormatException和IOException 。 这让我觉得缓存BitmapFrame是不受支持/未经测试的。 你可以从WPF中的图像中获取元数据,而不会在不确定的时间内锁定文件吗?

当原始图像高度和宽度小于缩放高度和宽度时,图像缩放不起作用

我在尝试缩放图像时遇到了问题。 当我试图缩放(原始)的图像小于我想要扩展到的尺寸时,问题出现了。 例如,宽度为850像素,高度为700像素的图像试图将其放大到950像素宽度和高度。 图像似乎正确缩放,但在我的位图上绘制错误。 随后将展开缩放图像的代码。 发送到ScaleToFitInside的宽度是试图缩放到的宽度和高度,在我的例子中都是950px。 public static Image ScaleToFitInside(Image image, int width, int height) { Image reszied = ScaleToFit(image, width, height); Bitmap bitmap = new Bitmap(width, height); using (Graphics g = Graphics.FromImage(bitmap)) { g.SmoothingMode = SmoothingMode.HighQuality; g.InterpolationMode = InterpolationMode.HighQualityBicubic; g.PixelOffsetMode = PixelOffsetMode.HighQuality; Rectangle rect = new Rectangle(0, 0, width, height); g.FillRectangle(Brushes.White, rect); int x […]

如何检测图像中的黑色子弹?

鉴于以下图像,我如何使用C#,EmguCV或AForge检测此图像中的黑色子弹(90子弹)? 我尝试使用GetPixel(x,y)方法,但它只检查逐个像素,它非常慢,我需要检测项目符号而不是像素。

使用EMGU CV C#中的HOGDescriptor获取图像的HOG描述符

如何使用EMGU CV和C#计算图像的猪描述符向量。 如果我做这样的事情: float[] f; Image img1 = new Image(fullPath); f = hog.Compute(img1, Size.Empty, Size.Empty,null ); 它没有用,它给了一个 你调用的对象是空的。 例外。 我想用默认参数计算hog描述符。 有人知道怎么做吗? Emgu cv的记录非常糟糕。 我修改了代码,现在我收到以下错误:“外部组件抛出exception”代码如下所示 public float[] GetVector(Image im) { HOGDescriptor hog = new HOGDescriptor(); // with defaults values // Image pImage = new Image(; //pImage.ROI = new Rectangle(new Point(0, 0), new Size(64, 128)); Point[] p […]

比较2图像的焦点

我正在尝试开发对象检测算法。 我打算比较2个不同焦距的图像。 一个正确聚焦在物体上的图像和一个正确聚焦在背景上的图像。 通过阅读有关自动对焦算法 。 我认为它可以通过对比度检测无源自动对焦算法来完成。 它适用于传感器上的光强度。 但我不确定图像文件中的光强度值是否与传感器的值相同。 (它不是RAW图像文件.jpeg图像。)jpeg图像中的光强度值是否与传感器上的相同? 我可以用它来检测对比度检测的焦点正确性吗? 有没有更好的方法来检测哪个图像区域正确聚焦在图像上?