Tag: 图像处理

C#检查另一个图像中是否存在图像

我不知道从哪里开始,所以一些指导会很好。 我需要做的是,检查一个大图像(比如1280×1024)并检查其中是否存在另一个较小的图像(可能是一个50×50像素的图像)。 我尝试通过比较每个非常慢的像素来做到这一点,我可能需要做100次以上,所以看起来不合适。 我只是想知道是否有更好的方法? 谢谢

如何在WinRt应用程序中将WriteableBitmap图像转换为Byte数组

我想使用Windows商店都市风格的应用程序中的C#代码将WriteableBitmap图像转换为Byte[]数组。

图像比较和返回百分比

int DiferentPixels = 0; Bitmap first = new Bitmap(“First.jpg”); Bitmap second = new Bitmap(“Second.jpg”); Bitmap container = new Bitmap(first.Width, first.Height); for (int i = 0; i < first.Width; i++) { for (int j = 0; j < first.Height; j++) { int r1 = second.GetPixel(i, j).R; int g1 = second.GetPixel(i, j).G; int b1 = second.GetPixel(i, j).B; […]

如何重新着色图像? (见图)

如何以编程方式实现这种颜色替换? 所以这是我用来替换像素的函数: Color.FromArgb( oldColorInThisPixel.R + (byte)((1 – oldColorInThisPixel.R / 255.0) * colorToReplaceWith.R), oldColorInThisPixel.G + (byte)((1 – oldColorInThisPixel.G / 255.0) * colorToReplaceWith.G), oldColorInThisPixel.B + (byte)((1 – oldColorInThisPixel.B / 255.0) * colorToReplaceWith.B) ) 谢谢,CodeInChaos!

如何转换类型Image到类型BitmapImage?

有谁知道如何从图像创建BitmapImage? 这是我正在使用的代码: MemoryStream memStream = new MemoryStream(bytes); Image img = Image.FromStream(memStream); 现在我可以在内存中访问此图像。 问题是我需要将其转换为类型BitmapImage才能在我的解决方案中使用它。 注意:我需要将其转换为类型BitmapImage而不是类型Bitmap 。 我无法弄明白,因为类型BitmapImage为它的构造函数接受了一个Uri。

使用OpenCV检测来自一个图像的对象是否在另一个图像中

我有一个包含对象的示例图像,如下图中的耳环: View post on imgur.com 然后,我有一个大的候选图像集,我需要确定哪一个最有可能包含对象,例如: View post on imgur.com 所以我需要为每个图像生成一个分数,其中最高分对应于最可能包含目标对象的图像。 现在,在这种情况下,我有以下条件/约束来处理/周围: 1)我可以获得不同角度的多个样本图像。 2)样本图像可能与候选图像处于不同的分辨率,角度和距离。 3)有很多候选图像(> 10,000),所以它必须相当快。 4)我愿意为速度牺牲一些精度,所以如果这意味着我们必须搜索前100名而不是前10名,这很好,可以手动完成。 5)我可以手动操作样本图像,例如勾勒出我想要检测的对象; 候选图像不能手动操作,因为太多了。 6)我根本没有OpenCV或计算机视觉的真实背景,所以我从头开始。 我最初的想法是首先在样本图像中围绕对象绘制粗略轮廓。 然后,我可以识别候选图像中的对象和角落的角落。 我可以分析每个角落周围的像素,看看它们是否看起来相似,然后按每个角落的最大相似度得分的总和进行排名。 我也不确定如何量化类似的像素。 我想只是他们的RGB值的欧几里德距离? 问题在于它忽略了对象的中心。 在上面的例子中,如果耳环的角落都在金框附近,那么它就不会考虑耳环内的红色,绿色和蓝色gem。 我想我可以通过查看所有角对并通过沿着它们之间的线采样一些点来确定相似性来改进这一点。 所以我有几个问题: A)这种思路一般是否有意义,或者是否有一些我缺失的东西? B)我应该调查OpenCV的哪些特定算法? 我知道有多个角点检测算法,但我只需要一个,如果差异都在边缘上进行优化,那么我最好用。 C)使用算法的任何示例代码都有助于我的理解? 我的语言选择是Python或C#。

C#中图像过滤的高速性能

我有位图。 我想将中值滤波器应用于我的位图。 但我不能使用GetPixel()和SetPixel(),因为速度对我来说是非常重要的因素。 我需要非常快速的方法来做到这一点。 也许可以使用Graphics.DrawImage(Image, Point[], Rectangle, GraphicsUnit, ImageAttributes) 。 中值滤波后我想应用二值化滤波器(对于每个像素计算亮度:B = 0.299 * R + 0.5876 * G + 0.114B,如果亮度小于thresholdValue(thresholdValue是[0 … 255]中我的任务的参数)那么结果图像中我的像素值是1,否则 – 0)二值化滤波器的速度对我来说也很重要

图像在C#中resize – 确定resize尺寸(高度和宽度)的算法

我需要缩小高度或宽度大于预定义像素值的图像。 我写了一些代码来查看原始图像,检查宽度,高度或高度和宽度是否大于最大宽度/最大高度设置。 我现在需要根据后一个值的最大值找出要resize的尺寸。 例如:如果图像为900h x 300w且MAX高度为700h我需要将高度调整为700并将宽度调整为???? < – 这是我需要计算的.. 创建和保存图像文件很简单,超出了本文的范围: // First I get the max height and width allowed: int resizeMaxHeight = int.Parse(Utility.GetConfigValue(“ResizeMaxHeight”)); // in config: 700px int resizeMaxWidth = int.Parse(Utility.GetConfigValue(“ResizeMaxWidth”)); // in config: 500px // Save original: try { filebase.SaveAs(savedFileName); } catch (System.IO.DirectoryNotFoundException ex) { Logger.Instance.LogException(ex, 0, “FileTransfer”); } // Determin original dimensions: […]

c#将图像格式转换为jpg

我需要从用户那里获得一张具有不同格式扩展名的图片,并且我希望始终将其保存为“jpg”,以便于处理。 在没有武装质量的情况下,在c#中有一个很好的方法吗?

裁剪/删除图像边缘的不需要的空间

我搜索了很多,以删除不需要的空间,但无法找到。 我只找到了可用于删除黑白背景空间的链接。 但我的背景图片可以是任何东西。 那么,如果我有这些图像, 如何提取我需要的图像部分。 例如,