Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从图像文件生成马赛克图片?_C#_Image_Algorithm_Mosaic - Fatal编程技术网

C# 如何从图像文件生成马赛克图片?

C# 如何从图像文件生成马赛克图片?,c#,image,algorithm,mosaic,C#,Image,Algorithm,Mosaic,我有一个源图像,如左图和一组元素,如右图: ..我需要生成一幅马赛克图片,就像 但直到现在,我还没有处理过图像,我不知道从哪里开始 我在C#工作了几年,但你可以用其他类似的语言给出例子。你给出的结果图像显然是一种模式——2011年,他们有一个可下载的软件,似乎可以满足你的需求。(ministeck不再直接提供,但似乎仍提供下载) 因此,如果您只是想从给定的图像中生成ministeck的模式,请使用他们的软件。如果你想通过一个算法来实现一些不同的东西,这是没有帮助的 编辑 好的,如果在分析图像后,

我有一个源图像,如左图和一组元素,如右图:

..我需要生成一幅马赛克图片,就像

但直到现在,我还没有处理过图像,我不知道从哪里开始


我在C#工作了几年,但你可以用其他类似的语言给出例子。

你给出的结果图像显然是一种模式——2011年,他们有一个可下载的软件,似乎可以满足你的需求。(ministeck不再直接提供,但似乎仍提供下载)

因此,如果您只是想从给定的图像中生成ministeck的模式,请使用他们的软件。如果你想通过一个算法来实现一些不同的东西,这是没有帮助的

编辑

好的,如果在分析图像后,需要将其加载到如下对象中:

using(Bitmap b = new Bitmap(yourFileName))
{
  MessageBox.Show(string.Format("image size {0} by {1} pixels", b.Width, b.Height));
  MessageBox.Show(string.Format("color of pixel (100,100) is {0}", b.GetPixel(100, 100).ToString()));
}

该对象具有多个属性,这将帮助您分析图像内容。试着从分析图像开始,不要忘记在之后处理位图或将其包装到如上所示的using语句中…

首先,您需要一个能够生成图案的算法。在谷歌上搜索“图像拼接算法”会得到很多有趣的结果thx,但对于我来说,该算法并不是一个大问题,因为它的实现需要搜索工具。我在上面写道,这是我第一次使用图像和图形。我可能需要C#(?)中可用的选择工具的帮助,以分析源图像,将其从集合中分割成元素并显示马赛克(如果用户可以像真正的马赛克一样在生成后手动编辑它,这将是非常棒的)。有什么想法吗?你会一直有一个像你给定的起始图像一样的图像,最小单位的颜色相同吗?例如,在开始图像中,有大约10x10像素的正方形,它们具有相同的颜色,表示最小的构建块。如果总是这样,您只需要找到一种算法,将一个颜色平面划分为构建块。如果情况并非总是如此,那么您必须首先将10x10个不同颜色像素的正方形区域合并为所有像素的一种纯色,然后让算法在修改后的起始图像上运行。不,我只需要使用我定义的元素和颜色。而且我认为大多数现有的程序都有不友好的gui。对我来说,自己写这篇文章是非常有趣的,可以学习一些关于用C#处理图像和图形的知识。有些替代软件是,但它也很讨厌=(非常感谢。但是,我考虑了一下,决定尝试使用WPF来实现我的目的。此外,我还发现了一个使用XAML的好例子。此外,我对XAML几乎没有经验。