Questions tagged «image-processing»

这些挑战涉及通过以某种方式更改它们,收集统计信息或其他图像处理任务来处理预先存在的图像文件。

1
将图片变成拼图
摘要 这项挑战的目标是创建一个15拼图 / 滑动拼图(在法语中也称为taquin)的未还原图像版本。 细节: 给定一个输入,该输入包括: 一个图像, 的整数n, 的其它整数r, 您的程序,函数或任何其他适合的东西,都必须输出与输入相同的图像(即,相同的大小和格式),但是必须经过以下过程: 将图像分成n²矩形, 随机删除其中一个矩形, 从受点(2.)影响的线/列中移动任意数量的连续矩形,以便填充创建的孔,并在该线/列中生成另一个。0如果毛坯在角落或边缘,则此数字可以是。 重复(3.)r次。 说明: 如果您在第(3.)步中从行中移动了矩形,则必须在下一个重复中从列中移动矩形, 如果您在一行中从左到右移动矩形,则必须在下一行中将它们从右到左移动,这与列的上下到上下以及从下到上相同, 您可能会假设n会选择该选项,因此它将划分图片两边的长度。 最后一点: 动画.gif演示整个过程非常受欢迎。 我建议使用下面的图片(是1024x768),将n=16和r=100用作模型,您可以使用任何其他图片(只要它是相关的并且符合SE的规则)。 请注意,适用标准漏洞政策。 这是代码高尔夫球,因此较短的提交将获胜! 由于请求了一个示例,因此这里有一个“手工制作”的示例,其中包含n=4和r=1 步骤1和2 步骤3:逐行,向左2个矩形

11
颜色计数,按出现次数排序
这是一个简单的描述,我简直不敢相信这是以前没有打过的: 对于给定的图像(您的语言支持的任何格式),找到唯一的颜色并输出颜色列表。 打印十六进制RGB的颜色代码,即一个哈希符号,#后跟R的2位数字,G的2位数字和B的2位数字(#xxxxxx其中x可以是0-9,AF和/或af)。 十六进制代码后跟一个空格和十进制像素数,然后是换行符(\n或\r\n)。 该列表应按计数降序排序(最常见的颜色在顶部)。 如果有领带(两种颜色的颜色相同),顺序并不重要。 该图像将不包含透明度,因此任何alpha值都不重要。Alpha值可能不是输出的一部分。 必须支持4000x3000的图片尺寸(这可能与类型定义有关) 示例图像“ 10red 20blue 30black 40white”: 预期产量: #FFFFFF 40 #000000 30 #0000FF 20 #FF0000 10 样本图片“蓝色渐变”: 预期的输出之一(因为相同颜色的顺序可能有所不同): #718DFF 19 #5571FF 15 #3855FF 11 #8DAAFF 11 #1C38FF 7 #AAAAFF 7 #8D8DFF 6 #AAC6FF 6 #C6C6FF 5 #C6E2FF 4 #001CFF 3 #E2E2FF 3 #FFFFFF 3 …

1
生成ASCII Art
给定任何合理的无损格式的黑白图像作为输入,请输出与输入图像尽可能接近的ASCII图像。 规则 只能使用换行符和ASCII字节32-127。 输入图像将被裁剪,以使图像周围没有多余的空白。 提交的内容必须能够在5分钟内完成整个评分语料库。 只接受原始文本;没有富文本格式。 评分中使用的字体为20点Linux Libertine。 如下所述,输出文本文件转换为图像时,其尺寸必须与输入图像相同,且任一尺寸均在30像素之内。 计分 这些图像将用于评分: 您可以在此处下载图像的zip文件。 提交内容不应针对该语料库进行优化;相反,它们应该适用于任何8张相似尺寸的黑白图像。如果我怀疑针对这些特定图像优化了提交,我保留更改语料库中图像的权利。 得分将通过以下脚本执行: #!/usr/bin/env python from __future__ import print_function from __future__ import division # modified from http://stackoverflow.com/a/29775654/2508324 # requires Linux Libertine fonts - get them at https://sourceforge.net/projects/linuxlibertine/files/linuxlibertine/5.3.0/ # requires dssim - get it at https://github.com/pornel/dssim import PIL import PIL.Image …

1
需要机器人卡车来打包卡车
作为乐队的路易,您必须打包卡车。您的程序将放置包装,使其适合最小高度。 一辆包装不好的卡车 规则 包装可以旋转90度的倍数。包装可能会碰触但不能重叠。 输出是重新打包的映像(到文件或标准输出)。您的程序可以使用任何输入或输出栅格图像格式。 您的程序必须接受任意数量的各种形状的软件包,图像的最大分辨率为4000x4000像素。请勿对此测试图像进​​行硬编码。如果我怀疑有任何针对该特定图像的提交内容,我保留用新的测试图像替换它的权利。 得分了 分数是包含排列的矩形的最小高度(宽度是输入矩形的宽度)。如果是平局,则最早的参赛者获胜。 照常禁止出现标准漏洞。

2
去让它满天星斗
在本竞赛中,您必须编写一个程序,该程序接受黑白像素图像,然后尝试对其进行更改,以使白色形状形成星形域,并尽可能减少更改。 允许的更改是将白色像素变成黑色,将黑色像素变成白色。 输出必须再次包含相同的图像,但是这次所有更改都带有,并且标有a /中心。从白色变为黑色的像素必须以蓝色显示,从黑色变为白色的像素必须以黄色显示,并且至少一个中心像素必须以红色显示。(完全的颜色由您决定。)程序必须输出指定的图像以及所做的更改总数。 定义 星域 当(且仅当)存在(至少)一个中心像素时,图像的白色像素集才代表星域。的中心像素是能够由被conneced白色像素中的一个直线到所有其他白色像素的,使得线仅横穿白色像素。(因此中心像素不一定是唯一的。) 两个像素之间的直线 给定两个像素(开始和结束,在下图中均为红色),两个像素之间的直线由所有像素组成,这些像素接触从第一个像素的中心开始的(下图中的数学黄色)线像素到最后一个像素的中心。如果一个像素仅碰到一个角就不会接触该线,所以要使一个像素属于该像素线,(数学上的黄色)线必须以不为零的长度穿过所讨论的像素。(如果它仅碰触拐角点,则视为长度为零)。请考虑以下示例: 例 对于给定的示例,第一个图像应表示示例测试用例“输入”,而其他两个图像则表示两个有效的可能输出: 黄色区域(以前为黑色)也计入“白色”域,而蓝色区域(以前为白色)计入域外的“黑色”部分,红色点每次都代表一个可能的中心像素。 测试用例 以下测试用例是png,每个大小为256 x 256像素。 计分 请使用以下测试用例运行程序,并在答案中包括输出(图像/更改数量)。我将为每个测试用例排行榜。您的分数将是排行榜中每个排名的总和-分数越低越好。有标准漏洞。不允许程序识别那些测试用例并为其运行特殊情况。(不允许为每个测试用例预先计算并保存最佳中心像素。)该程序应适用于任何图像。 排行榜 Name | Score | 1 - rk | 2 - rk | 3 - rk | 4 - rk | 5 - rk | 5 - rk | Total Changes ------------+-------+------------+------------+------------+------------+------------+------------+-------------- …

4
获取吸气剂
任务 我想每个人都喜欢自动代码生成并节省工作时间。您白天必须创建许多类和成员,而又不想getters手动创建所有这些类和成员。 任务是编写一个程序或函数,该程序或函数getters将为您自动为所有类成员生成。 输入 在我们的语言中,对象非常简单。类和成员的名称必须以字符开头,[a-zA-Z]并且只能包含字符[a-zA-Z0-9]。这是一个例子: class Stack { public overflow; protected trace; private errorReport; } 输出 这是基于给定示例的有效输出: class Stack { public overflow; protected trace; private errorReport; public function getOverflow() { return this->overflow; } public function getTrace() { return this->trace; } public function getErrorReport() { return this->errorReport; } } 吸气剂 getter方法的要求是: …
13 code-golf  string  syntax  code-golf  math  primes  rational-numbers  code-golf  graphical-output  image-processing  code-golf  kolmogorov-complexity  music  audio  code-golf  string  code-golf  math  geometry  code-golf  math  sequence  combinatorics  code-golf  game  grid  board-game  code-golf  restricted-source  array-manipulation  source-layout  code-golf  base-conversion  binary  code-golf  math  physics  code-golf  math  number  date  expression-building  code-golf  array-manipulation  graph-theory  decision-problem  popularity-contest  error-correction  code-golf  kolmogorov-complexity  geometry  grid  code-challenge  arithmetic  combinatorics  set-partitions  code-golf  kolmogorov-complexity  sequence  fibonacci  code-golf  restricted-source  pristine-programming  code-golf  code-golf  string  kolmogorov-complexity  code-golf  arithmetic  code-golf  string  parsing  code-golf  code-golf  sorting  counting  permutations  3d  code-golf  code-golf  ascii-art  music  code-golf  string  code-golf  string  ascii-art  code-golf  string  code-golf  quine  polyglot  code-golf  math  string  code-golf  internet 

2
ASCII艺术生成
任务 编写一个程序或函数,该程序或函数获取一个宽度w和高度为h2的整数a <= w/2和b <= h/2的图像,并输出该图像的图像,其尺寸为ax b。 应该通过以下步骤(或具有相同输出的其他过程)生成ascii艺术: 将wx h图像调整为2ax 2b。(x, y)调整大小后的图像中像素的颜色应等于矩形内具有以下角的原始图像中所有像素的颜色平均值: (floor[x * w/2a], floor[y * h/2b]) (ceil[(x+1) * w/2a], ceil[(y+1) * h/2b]) 调整大小后的图像应通过获取颜色的红色,绿色和蓝色分量的平均值,然后将每个分量设置为该平均值来降低饱和度。 应按照以下规则为每个2x2像素块输出一个字符: 令e = 3 - floor[color/64],其中color表示左上方像素的红色分量(在0..255范围内)。让f,g和h引用此值,但分别用于右上,左下和右下像素。 让z是平均的e,f,g,h。 输出与以下字符相对应的字符(白色代表3 - floor[color/64]零像素,灰色代表非零像素)。 =输出一个空格() 或=输出"如果e (or f) >= 2和'其它。 或=输出,如果g (or h) >= 2和.其它。 或=输出- 或=输出; =输出 \ …

5
那角度是多少?
挑战的目标是确定图像中线条的角度。 图片上的规则: 图像背景将为白色(#FFFFFF) 线条的笔触将为黑色(#000000) 该行不会抗锯齿 图片将为100x100像素 该线将从图像的中心开始 该行将开始向下指向(6-OClock) 该行将是50像素长 从起始位置开始逆时针测量线的角度 图像编解码器将为.jpg或.png 输入格式将是命令行arg,脚本输入或函数arg传递的文件名。输出格式很简单-仅输出度数(例如90)。 答案可以是规定量度的±1度。以下是一些示例图片: 带有灰色背景的45度参考图像 0度 45度 50度 130度 230度 324度 这是用于创建图像的代码(这是使用Processing编码的): int deg = 45; int centX = width/2, centY = height/2; background(255); noSmooth(); line(centX, centY, centX + sin(radians(deg))*50, centY + cos(radians(deg))*50); saveFrame("line-"+deg+".png");// image codec can be changed here. use …

4
Sobel边缘检测器
您的任务是编写一个获取输入图像的程序,并通过边缘检测将其运行以成为输出图像。 边缘检测的工作原理如下(如果不清楚,请参阅sobel边缘检测): 像素的值是像素的总亮度,因此,如果它是彩色的,则需要先将其转换为灰度(为使操作简单且易于打高尔夫球,可以取R,G和B)。 像素p (i,j)的 G x和G y的公式为: G x = -1 * p (i-1,j-1) -2 * p (i-1,j) -1 * p (i-1,j + 1) + 1 * p (i + 1,j -1) + 2 * p (i + 1,j) + 1 * p (i + 1,j + 1) G …

2
建立一个采矿机器人
您的程序将控制采矿机器人在地下搜索有价值的矿物。您的机器人会告诉控制器您要移动和挖掘的位置,控制器将提供有关机器人状态的反馈。 最初,将为您的机器人提供矿山的图像图,其中已经存在一些矿井,以及一个数据文件,用于指定矿山中矿物的值和硬度。然后,您的机器人将在轴中移动,以寻找有价值的矿物质。您的机器人可以挖土,但会因坚硬的岩石而减速。 24小时轮班后返回最有价值货物的机器人将成为赢家。这似乎是一个复杂的挑战,但制造基本的采矿机器人很简单(请参阅下面的示例采矿机器人答案)。 运作方式 控制器将使用矿井图像,矿物数据和设备文件名启动您的程序。机器人可以使用矿山图像和矿物数据找到有价值的矿石并避开坚硬的岩石。机器人可能还想从设备列表中购买设备。 例如: python driller.py mineimage.png minerals.txt equipmentlist.txt 在2秒钟的初始化时间后,控制器通过stdin和stdout与机器人程序通信。机器人必须在收到状态消息后的0.1秒内做出响应。 每转一圈,控制器就会向机器人发送一条状态行: timeleft cargo battery cutter x y direction 例如: 1087 4505 34.65 88.04 261 355 right 整数timeleft是班次结束前剩下的游戏秒数。在 cargo如此远不如你付出什么设备已开采矿物的整数值。该battery级别是你的电池剩余电量的整数百分比。的cutter整数水平是切割器作为标准值的百分比的当前锐度。的x和y值与在(0,0)从左上角引用的机器人位置的正整数。方向是机器人当前面对的方向(左,右,上,下)。 当您的机器人收到“ endshift”或“ failed”输入时,您的程序将很快终止。您可能希望机器人将调试/性能数据首先写入文件。 控制器将接受4种可能的命令。direction left|right|up|down会将您的机器人指向该方向,并需要15个游戏秒。move <integer>会指示您的机器人向前移动或挖掘很多单位,这取决于切割的矿物的硬度和刀具的锋利度(请参见下文),需要一些时间。buy <equipment>将安装指定的设备并从您的货物价值中扣除成本,但前提是机器人位于水面(y值<= y的起始值)。设备安装需要300游戏秒。特殊命令snapshot将当前的地雷映像写入磁盘,并且不占用游戏时间。您可以使用快照来调试机器人或创建动画。 您的机器人将以100电池和100切割器清晰度启动。移动和转动会消耗少量电池电量。挖掘的用途更多,并且取决于矿物的硬度和刀具的当前清晰度。当您的机器人挖掘矿物时,切割机将失去锐度,这取决于所花费的时间和矿物的硬度。如果您的机器人有足够的货物价值,它可能会返回地面以购买新的电池或刀具。请注意,高质量的设备的初始有效性超过100%。电池的名称中包含字符串“ battery”,切割器的名称中包含“ cutter”(惊奇)。 以下关系定义了移动和切割: timecutting = sum(hardness of pixels cut) * 100 …

1
帮助Jason格式化他的JSON
杰森(Jason)有一个很大的JSON,但它不可读,因此需要美化它。 格式化规格 JSON有4种不同的类型: 数字;只是0-9 弦; 用双引号引起来的"字符串\ 数组;以分隔[],项目以分隔,,项目可以是以下任何类型 对象;以分隔{},格式是key: valuekey是字符串,value是这些类型中的任何一种 间距 数组之间的逗号之间应仅留一个空格 对象应该在键和值之间只有一个空格, : 缩进 每个嵌套级别比上一个缩进2个级别 每个对象键/值对始终在自己的行上。对象缩进 如果数组包含另一个数组或对象,则该数组将缩进多行。否则,数组将保持一行 规则 内置插件,其轻视这个任务都不会允许的。 一如既往,不允许出现标准漏洞 例子 [1,2,3] [1, 2, 3] {"a":1,"b":4} { "a": 1, "b": 4 } "foo" "foo" 56 56 {"a":[{"b":1,"c":"foo"},{"d":[2,3,4,1], "a":["abc","def",{"d":{"f":[3,4]}}]}]} { "a": [ { "b": 1, "c": "foo" }, { "d": [2, …
11 code-golf  string  json  code-golf  number  code-golf  image-processing  code-golf  string  code-golf  number  sequence  arithmetic  number-theory  code-golf  string  code-golf  string  counting  code-golf  ascii-art  code-golf  math  code-golf  tips  code-golf  string  code-golf  grid  graph-theory  code-golf  parsing  interpreter  brainfuck  code-golf  math  arithmetic  number-theory  programming-puzzle  c#  code-golf  dominoes  code-golf  tips  code-golf  string  grid  crossword  code-golf  string  code-golf  kolmogorov-complexity  code-golf  number  sequence  code-golf  string  math  number  number-theory  primes  fastest-code  code-golf  number  code-golf  string  code-golf  ascii-art  number  kolmogorov-complexity  code-golf  string  grid 

1
调整光栅化文本的大小,使其看起来没有像素化
这是在文本编辑器中键入的一些文本的屏幕截图: 这是较大尺寸的相同文本。 请注意,在带有明显对角线笔划的字母(例如和)上,锯齿现象是显而易见的。此问题是光栅字体无法普及到TrueType等“可缩放”格式的主要原因。xz 但这可能不是光栅字体固有的问题,只是通常实现缩放字体的方式。这是使用简单的双线性插值结合阈值的替代渲染。 这比较平滑,但并不理想。对角线笔触仍然凹凸不平,弯曲的字母像c和o仍然是多边形。这在大尺寸情况下尤其明显。 那有更好的方法吗? 任务 编写一个带有三个命令行参数的程序。 resize INPUT_FILE OUTPUT_FILE SCALE_FACTOR 哪里 INPUT_FILE是输入文件的名称,假定它是在白色背景上包含黑色文本的图像文件。您可以使用任何方便的主流栅格图像格式(PNG,BMP等)。 OUTPUT_FILE是输出文件的名称。它可以是栅格图像或矢量图像格式。如果要执行类似ClearType的子像素渲染,则可以引入颜色。 SCALE_FACTOR是一个正浮点值,指示可以调整图像大小的大小。给定x × y px输入文件和缩放因子s,输出将具有sx × sy px 的大小(四舍五入为整数)。 您可以使用第三方的开源图像处理库。 除了您的代码外,请使用我的第一张图片作为输入,以1.333、1.5、2、3和4的比例因子包含程序的示例输出。您也可以尝试使用其他字体,包括按比例隔开的字体。 计分 这是一次人气竞赛。投票数量减去投票数量最多的条目将获胜。如果出现平局,则以较早的参赛者为准。 编辑:由于缺少条目而延长了截止日期。待定。 鼓励选民首先根据输出图像的外观进行判断,其次基于算法的简单/优雅。

2
X大于3,且X和Y之间至少相差2
我试图打败一些C ++。是否可以使这种情况更短? X > 3 & X - Y > 1 (当然,除了删除空白。) 所以,X至少4,但X >= Y + 2。 X和Y是[0,5]间隔中的整数。 我试图找到一些按位公式,但失败了。
11 code-golf  number  tips  c++  code-golf  popularity-contest  obfuscation  code-golf  c  code-golf  board-game  hexagonal-grid  code-golf  game  grid  code-golf  number  permutations  popularity-contest  math  graphical-output  number-theory  king-of-the-hill  code-challenge  compression  code-challenge  fastest-code  code-golf  math  ascii-art  animation  code-golf  popularity-contest  generation  counting  fastest-code  fastest-code  popularity-contest  image-processing  king-of-the-hill  code-golf  conversion  binary-tree  code-golf  math  number  rational-numbers  division  code-golf  restricted-source  hashing  atomic-code-golf  logic-gates  code-golf  function  code-challenge  puzzle-solver  ai-player  test-battery  popularity-contest  music  compression  code-golf  number  stack  atomic-code-golf  logic-gates  ascii-art  popularity-contest  code-golf  date  grid  code-challenge  game  code-golf  parsing  code-golf  math  geometry  sequence  popularity-contest  code-trolling  code-golf  string  restricted-source  code-golf  quine  king-of-the-hill  code-golf  math  code-golf  simulation  code-golf  ascii-art  code-challenge  sorting  optimization 

4
从图像产生数字2014
在2014年挑战赛中,迈克尔·斯特恩(Michael Stern)建议使用OCR解析到2014年。我想朝另一个方向挑战。使用您选择的语言/标准库中的内置OCR,设计最小的图像(以字节为单位),将其解析为ASCII字符串“ 2014”。 Stern的原始映像为7357字节,但是经过一点努力,它可以无损地压缩到980字节。毫无疑问,黑白版本(181字节)在相同的代码下也能正常工作。 规则:每个答案都应给出图像,其大小(以字节为单位)以及处理该图像所需的代码。出于明显原因,不允许自定义OCR ...!允许使用任何合理的语言和图像格式。 编辑:为了回应评论,我将扩大它的范围,以包括任何现有的库,甚至对于没有可用的OCR的语言,甚至包括http://www.free-ocr.com/。

2
重建丢失的RGB通道
看一下这些自然场景的照片,并从其中取出RGB通道之一: 来源(红色):https : //en.wikipedia.org/wiki/File : Altja_j%C3%B5gi_Lahemaal.jpg 来源(绿色):https : //commons.wikimedia.org/wiki/File : 2007_mather-lake_hg.jpg 来源(蓝色):https : //commons.wikimedia.org/wiki/File : Fox_01.jpg 即使没有其中一个通道,您也可以确定某些事物应该是什么颜色,或者如果丢失通道的重建准确无误,至少可以有个好主意。 例如,这是第一张添加了红色通道的图片,它只是随机噪声: 该图像显然不是红色通道的准确重建。这是因为自然照片通常不使用整个RGB光谱,而仅使用“看起来自然的颜色”的子集。同样,红色阴影将遵循与其他阴影相关的特定梯度。 您的任务是构建一个程序,该程序将拍摄已删除一个通道的照片,并尝试通过重建它认为丢失的通道来尽可能接近原始图像。 通过计算该通道的值在原始图像中的实际值的±15(含)以内的像素百分比,您的程序将在缺失通道与原始图像的通道匹配度上得分范围从0到255,如在标准的8位彩色通道中)。 可以在此处找到对您的程序进行评分的测试用例(9.04 MB压缩文件,6张图像)。目前,它仅包含上面的三个示例图像及其原始图像,但是一旦完成,我将在后面再添加一些图像来制作完整的套件。 每张图像都按比例缩小并裁剪为1024 x 768,因此它们在您的乐谱中的权重相同。可以预测给定公差内最多像素的程序将获胜。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.