Questions tagged «image-processing»

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

3
在Cat中隐藏信息
您是试图与祖国沟通的秘密特工。当然,信息需要隐藏,因此没人会掉落您的信息。有什么比猫更合适的呢?每个人都喜欢猫的有趣图片[需要引用],因此他们不会怀疑其中隐藏着秘密信息! 受到摩纳哥用来保存共享关卡的关卡信息的算法的启发,编写一个程序将信息编码为图像颜色的最低有效位是您的任务。 编码格式: 前24位确定剩余编码字节串的长度(以位为单位) 从左到右和从上到下读取图像,显然从左上像素开始 从红色到绿色到蓝色读取通道 读取每个通道的最低有效位 位按大端顺序保存 规则: 您的程序需要对单个字节字符串进行编码,并对基本映像使用单个映像文件名 生成的图像必须作为真彩色PNG文件输出 您可以使用任意形式的I / O(ARGV,STDIN,STDOUT,从文件写入/读取),只要您声明如何使用程序即可 您必须随机选择一个有趣的猫咪图片并将其编码到其中,以表明您的程序可以正常工作 您可以假设只提供了有效的输入,如果位数不足,图像不是真彩色格式,图像不存在或类似的问题,您可以做自己想做的事情 您可以假定所提供的图像不包含任何Alpha通道 长度以不带BOM的UTF-8字节计数 您可以使用此PHP脚本来测试您的解决方案,并提供PNG文件的名称作为第一个命令行参数: <?php if ($argc === 1) die('Provide the filename of the PNG to read from'); $imageSize = @getimagesize($argv[1]); if ($imageSize === false) die('Not a PNG file'); list($width, $height) = $imageSize; $image = …

14
色度成功的关键
RGB颜色值#00FF00是一个相当重要的值:它用于制作电影,电视节目,天气通告等。它是著名的“电视绿色”或“绿色屏幕”颜色。 挑战 您的任务是编写一个程序,以获取两个输入图像,这些输入图像均为PNG格式(或图像库的图像对象类型),并且尺寸相同。一个图像可以是任何旧图像。另一个是具有颜色背景的图像#00FF00。输出图像将由第二个图像覆盖,第一个图像重叠在第一个图像上,不#00FF00存在任何颜色(第一个图像除外)。输入和输出可以通过文件,一个GUI,等你被允许采取的RGB值的数组作为输入来完成,因为看到这里。您可以假定图像仅具有完全不透明的像素。 基本上... 制作一个程序,将#00FF00一个图像中的每个像素都替换为背景图像中的相应像素。 测试用例 @dzaima慷慨提供的:背景: 前景: 输出: 当然,严格禁止标准漏洞。这包括使用在线资源为您做到这一点。 这是代码高尔夫,所以最短的代码胜利和最好的程序员可能会繁荣...

3
龙的形象
我看到一个由正方形制成的双龙曲线的酷图,不知道如果我们从另一个基本图像开始会发生什么。所以我写了一个程序来做到这一点。 太酷了,我以为作为挑战来做会很有趣。 任务 您将拍摄一个正方形图像,其边缘长度为2的幂(大于4)。 要制作此图像,您应先将图像分成4个相等大小的垂直带,然后将相邻的带沿相反方向移动为图像大小的八分之一(移动的带应环绕到另一侧)。然后,您应该在每次将图像分为两倍的分割并向上一次移动一半时重复此过程。每次迭代都应在垂直和水平移位之间交替。您应该进行迭代,直到移位要求您移位完成的点数像素(始终为1/2)。 从左向左垂直移动奇数编号的带(零索引)时,应向下移动,而偶数向上移动。水平移动时,从顶部起奇数编号的频段应向左移动,而偶数编号的频段应向右移动。 您只需要输出/显示转换的最终结果,而不是像gif所示的所有中间步骤。 这是代码高尔夫球,因此目标是最小化以字节为单位的源代码长度。 通过示例工作 我将逐帧浏览页面顶部显示的cat gif。 这是起始图像: 该图像为512 x 512像素。我们将其分为4个频段,以将每个频段垂直移动和移动1/8图像尺寸(64像素)。 现在,我们将其分为两倍的频段(8个频段),并将其移动到上次的一半(32像素)。这次我们将水平移动。 现在,我们这次再次垂直移动,分为16个波段,每个波段移动16个像素。 32波段8像素水平移动 64波段4像素,垂直移位。 128个波段,2个像素,水平移动。 256个波段,1个像素,垂直移位。 由于下一个移位将要求我们将每个波段移动半个像素,因此我们将在此处停止并输出结果。 测试用例 我有一个可以制作这些图像的工作脚本,所以我想我会让你们选择测试用例的图像。因此,如果您有一个平方的图像是2的幂次方,那么您希望看到它变成龙形。随时将其发送给我,我将其作为测试用例。 您还应该在纯白色或纯黑色图像上进行测试,以便确定像素是否消失。

8
“添加一个”到图像中的每种颜色
您只需拍摄此图像,然后将每种颜色加到每个十六进制数字上即可。例如,#49de5f将变为#5aef60(通过9循环到a和f循环到0。) 这也意味着所有白色(#ffffff)将变为黑色(#000000),因为所有f循环都返回0,但是所有黑色将变为黑色(#111111)的浅色阴影。 评分基于使用的最少字节数,因为这是一个代码高尔夫问题。 使用下面的图像作为代码的输入图像,并将代码的输出图像放入答案中。 如果需要,您还可以使用其他彩虹图像:

3
彩虹化图像
这个挑战是关于逐渐改变图像的色调来制作漂亮的图片,如下所示: (原始) 挑战 编写一个程序或函数,该程序或函数使用两个非负整数和一个您选择的任何常见图像文件格式的图像(您可以采用指向图像或原始图像数据的路径)。 我们将第一个整数称为循环,将第二个整数称为offset。 我们还将浮点步长定义为360倍周期除以图像面积,即step = 360 * cycles / (image width * image height)。 对于图像中的每个像素P,从左到右,从上到下一次移动一行(即,如果像素是字母,则按读取顺序),请执行以下操作: 增加色调的P由偏移度(如果必要的话,从360循环周围为0)。 然后增加抵消由步骤。 以任何常见图像文件格式保存,显示或原始输出结果图像。 此过程递增地增加了图像中的所有像素的色调,使得循环满环周围的色调的彩虹,通过最初偏移色调通过开始偏移。 当周期为1且偏移为0时,如上面的“星夜”图片所示,像素的顶行和底行几乎没有色相偏移,但在这之间有一个完整的颜色周期。 细节 循环可以是任何非负整数,但是您可以假定偏移量是从0到359(含)。 当cycles为0时,图像中的每个像素的色相都会偏移精确的偏移量,因为step也必须为0。(在这种情况下,如果offset为0,则图像根本不会改变。) 如果需要,您可以假设周期和偏移量输入为浮点数(即1.0代替1)。(我意识到它们根本不需要是整数,这只是使挑战变得更加简单。) “色相”是指HSL / HSV颜色模型中常见的RGB颜色空间版本。 例子 原版的: 周期= 1,偏移= 0: 周期= 1,偏移= 180: 原版的: 周期= 2,偏移= 60: 原版的: (感谢ArtOfCode。) 周期= 1,偏移= 120: 原版的: (感谢门把手。) 周期= 1,偏移= …

12
确定垂直切片
给定图像,输出[整个垂直截面的像素宽度] 1(如果存在)。如果不存在垂直截面,则输出0。 输入可以作为本地文件或嵌套数组提供。如果选择将输入作为嵌套数组,则白色像素应由真实值表示,而非白色像素应由伪值表示。 1.连续的全白列的数量 您可以假设 没有图像会大于1000平方像素 每个图像最多只能有一个完整的垂直部分 例子 输入: 输出: 50 57 0 0 以下是前两个示例,以黄色突出显示它们的部分:

5
从正方形到六角形的无缝转换
对于在网格上进行的许多游戏来说,六边形是“明显优越的选择”。不幸的是,许多免费游戏美术网站仅具有用于正方形地图的无缝磁贴集。在过去的项目中,我使用了其中一些,并将其手动转换为六边形。 但是,我在晚年变得懒惰。用一个小的脚本来自动化该过程应该很容易。 但是,我在晚年变得懒惰。因此,我将其外包给您,并将其伪装成高尔夫挑战赛1。 输入项 输入是具有24位RGB颜色的任何常见图像格式的正方形图像。您也可以将文件名而不是图像数据本身作为输入。 您可以假设图像是正方形的,并且边长是四的倍数。 输出量 输出是输入图块,但转换为六边形(图像本身将是正方形,带有透明区域)。您可以将其保存到文件或显示在屏幕上。 同样,任何常见的图像格式都可以。如果您使用的格式支持透明,则背景区域必须是透明的。如果不是,您可以使用#FF00FF颜色(可怕的紫红色)作为替代。 方法 那么我们该怎么做呢?我使用2的方法在垂直方向上稍微挤压图像,但总体而言,对于大多数情况而言,它看起来都不错。我们将使用此输入图像做一个示例: 缩放:将图像缩放到3:2的比例。由于我们的图像将是正方形,这意味着您只需将它们缩放到75%的宽度和50%的高度即可。我们的示例输入为200x200,因此最终得到以下150x100的图片: 平铺:将缩放后的图像的副本放到2x2的网格中: 裁剪:从2x2网格中的任意位置抓取大小适当的六边形。现在,为了便于平铺,此六角形并非完全规则。在裁剪了原始大小的正方形(此处为200x200)后,您便裁剪了角落。裁剪线应从(大约)每个左侧/右侧的中心延伸到顶部/底部边缘的四分之一: 这就是您的输出! 这是平铺时的外观示例(此处放大): 这是代码高尔夫,因此以字节为单位的最短代码获胜。适用标准漏洞,依此类推。 1信不信由你。 2 此帮助站点中的方法一。

12
抖动灰度图像
使用您自己的算法将灰度图像抖动为纯黑白图像。 准则:您必须提出自己的新算法。您不能使用预先存在的算法(例如Floyd-Steinburg),但可以使用常规技术。您的程序必须能够读取图像并产生相同大小的图像。这是一场人气竞赛,因此谁能产生最好的(最接近原始的)和最具创造力的(由投票决定)的胜利。如果代码简短,则可以加分,尽管这不是必需的。 您可以使用任何想要的灰度图像作为输入,它应该大于300x300。任何文件格式都可以。 输入示例: 输出示例: 这是一项很好的工作,但是仍然有可见的线条和图案。

23
ASCII艺术八边形
给定输入整数n > 1,输出边长由n字符组成的ASCII八角形。请参阅以下示例: n=2 ## # # # # ## n=3 ### # # # # # # # # # # ### n=4 #### # # # # # # # # # # # # # # # # #### n=5 ##### # # # # # # …
22 code-golf  ascii-art  code-golf  geometry  code-golf  balanced-string  code-golf  cops-and-robbers  code-challenge  cops-and-robbers  code-golf  code-golf  random  cryptography  code-golf  array-manipulation  number  code-challenge  integer  code-golf  math  integer  code-golf  math  math  parsing  image-processing  test-battery  math  number  combinatorics  fastest-code  code-golf  code-golf  math  number-theory  rational-numbers  polynomials  code-golf  math  geometry  code-golf  code-golf  number-theory  primes  factoring  code-golf  restricted-source  code-golf  string  decision-problem  counting  code-golf  math  sequence  fibonacci  code-golf  array-manipulation  counting  code-golf  array-manipulation  number-theory  code-golf  array-manipulation  code-golf  random  code-golf  string  hexadecimal  code-golf  string  code-challenge  sorting  code-golf  number  floating-point  code-golf  sorting  code-golf  decision-problem  fibonacci  code-golf  number  combinatorics  code-golf  string  code-golf  math  code-golf  electrical-engineering  code-golf  javascript  code-golf  base-conversion  code-golf  array-manipulation  matrix  binary-matrix  code-golf  kolmogorov-complexity  python  perl  ruby  code-golf  number  code-golf  optimization  integer-partitions  code-golf  string  code-golf  ascii-art 

12
多云吗?
挑战 给定天空的图像,您必须以oktas输出云量。提供的图像将是图像文件(取决于您的类型),输出应为STDOUT。 奥克塔斯 在气象学中,okta是用于描述任何给定位置(如气象站)的云量的度量单位。根据云层覆盖了八分之几的天空来估算天空条件,范围从0 oktas(完全晴朗的天空)到8 oktas(完全多云)。 天空永远是中午左右的照片(所以,蓝天,不是红色/夜空)。 云的颜色将始终是遵循以下模式的颜色: #ABCDEF 哪里AB >= C0,CD >= C0和EF >= C0。 或者,在RGB中: (A, B, C) 哪里A >= 192,B >= 192和C >= 192。 以下是与Oktas相关的百分比覆盖率: 0% - 0 oktas 12.5% - 1 okta 25% - 2 oktas 37.5% - 3 oktas 50% - 4 oktas 62.5% - …

16
提取图像的RGB通道
在给定图像的情况下,要么作为输入(可能是RGB三元组),要么使用文件名作为输入(您可以假定图像具有特定的文件名,可能没有扩展名),则输出表示图像的单个颜色通道的图像。 您还将接受另一个输入,代表要输出的通道。输入可以是任何3个不同的符号之一。但是,符号必须是字符串或数字。但是,您不能将矩阵应用于输入数组。(例如{1, 0, 0},或{0, 1, 0})。 您将输出<input>输入图像的通道。您既可以将其保存到文件中,也可以输出一组RGB对。 您的程序对图像的大小(以px为单位)应该没有限制,并且必须支持.png,.jpg/ .jpeg/ .JPG或RGB三胞胎作为图像格式。(但是它可以支持任意数量) 测试用例: 红色通道: 绿色通道: 蓝色频道: 还有另一个测试用例,完全是红色的。 原始照片,红色,绿色和蓝色。(警告:看得太久的普通和红色通道太痛了) 另外2个测试用例: 原始,红色,绿色,蓝色。 原始,红色,绿色,蓝色。 后两个测试用例来自所有颜色的图像。

30
获取一个具有不同数字的随机n位数字,第一个不是0
我读了这个问题,并认为这将是一个不错的挑战。 任务 给一个输入0<n<10生成一个随机数 正好n位数字 第一个不是 0 所以 f(n)>10**(n-1)-1 不同的数字 获奖标准 这是代码高尔夫球,因此最短的代码获胜。 随机 我的意思是随机分布均匀。因此,从程序的角度来看,每个可能的数字都有相同的机会。如果您使用的语言具有一个奇怪的随机数生成器,则可以使用该生成器。 例 要从中随机选择的值的列表n=2是: [10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 47, 48, …
22 code-golf  number  random  grid  game  king-of-the-hill  javascript  code-golf  arithmetic  statistics  code-golf  math  code-golf  math  code-golf  string  palindrome  code-golf  string  interactive  code-golf  quine  polyglot  code-golf  string  stack-exchange-api  code-golf  number-theory  decision-problem  code-golf  tips  code-golf  string  internet  code-golf  graphical-output  image-processing  fractal  code-golf  ascii-art  geometry  hexagonal-grid  code-golf  string  restricted-source  hello-world  code-golf  game  code-golf  cipher  code-golf  permutations  cops-and-robbers  permutations  cops-and-robbers  code-golf  internet  stack-exchange-api  code-golf  ascii-art  random  code-golf  tips  code-golf  ascii-art  code-golf  code-golf  kolmogorov-complexity  code-golf  string  unicode  code-golf  number  sequence  primes  palindrome  code-golf  game  decision-problem  code-golf  math  geometry  code-golf  graphical-output  interactive  code-golf  set-partitions  code-golf  number  arithmetic  restricted-source  code-golf  decision-problem  python  recursion  code-golf  ascii-art  code-golf  source-layout  code-golf  function  recursion  functional-programming  code-golf  game  combinatorics  permutations  code-golf  string  file-system  code-golf  string  hashing  code-golf  stack-exchange-api  code-golf  string  code-golf  math  number  arithmetic  polyglot 

16
还有一个程序,我出去了!
给定一个正整数嵌套级n和字符串s的打印的ASCII字符(到~,输出一个。方案,其中,以相同的语言运行时,输出一个程序,其输出程序输出该串s。 总计 n应该生成程序,所有程序都应以与您的答案相同的语言运行。 注意:您可以输出程序或函数-默认情况下,您可以将任何内容作为提交提交。 您可以s使用转义字符输入,以您的语言编写的程序或函数通常会如何输入字符串。 例 例如,给定n=1和s="recursion",Python 2程序可能输出: print "recursion" 运行此命令将输出: recursion 给定n=2和s =“ PPCG”,Python 2程序可能输出: print "print \"PPCG\" " 运行此输出: print "PPCG" 运行此输出: PPCG 相关(+标题灵感):还有一个LUL,我出门了 也相关(在沙箱中-现在已删除,但仍然可以以足够的信誉查看):源代码递归 测试用例 确保您的代码适用于以下测试用例(每行一个): n s 2 PPCG 4 Robert'); DROP TABLE Students;-- 17 Deep 2 Spaces In Here 3 "Don't forget quotes!" 5 'Backt`cks …
21 code-golf  recursion  code-golf  kolmogorov-complexity  board-game  code-golf  number-theory  polynomials  code-golf  code-golf  array-manipulation  polyglot  alphabet  answer-chaining  code-golf  sequence  math  atomic-code-golf  abstract-algebra  proof-golf  code-golf  internet  code-golf  internet  code-golf  ascii-art  kolmogorov-complexity  code-golf  math  ascii-art  number  integer  code-golf  decision-problem  binary-matrix  code-golf  number  sequence  number-theory  code-golf  math  decision-problem  matrix  abstract-algebra  code-golf  string  keyboard  code-golf  fractal  code-golf  math  sequence  combinatorics  hello-world  vim  code-golf  sequence  code-golf  graphical-output  image-processing  code-golf  decision-problem  matrix  linear-algebra  code-golf  ascii-art  code-golf  math  code-golf  ascii-art  graphical-output  code-golf  string  code-golf  string  substitution  code-golf  string  ascii-art  code-golf  arithmetic  code-golf  number  array-manipulation  decision-problem  code-golf  kolmogorov-complexity  code-generation  fractal  code-golf  ascii-art  kolmogorov-complexity  code-golf  ascii-art  code-golf  string  array-manipulation  code-golf  music  code-golf  array-manipulation  code-golf  internet  stack-exchange-api  math  fastest-algorithm  code-golf  binary  bitwise  code-golf  date  code-golf  string  code-golf  sequence  integer  code-golf  arithmetic  number-theory  code-golf  string  random 

8
你能算出矩形的数量吗?
我最喜欢的数学消遣之一是绘制一个矩形网格,然后找到该网格中所有可见的矩形。在这里,提出这个问题,为自己冒险! 你能算出矩形的数量吗? +-----+-----+-----+-----+ | | | | | | | | | | +-----+-----+-----+-----+ | | | | | | | | | | +-----+-----+-----+-----+ | | | | | | | | | | +-----+-----+-----+-----+ | | | | | | | | | | +-----+-----+-----+-----+ 此4 x 4 …

8
阿诺德的猫地图
挑战 给定具有相同宽度和高度的彩色光栅图像*,输出在Arnold猫图下转换的图像。(*详细信息见下文) 定义 给定图像的大小,N我们假定像素的坐标由0和之间的数字给出N-1。 然后定义阿诺德的猫图如下: 坐标[x,y]处的像素移动到[(2*x + y) mod N, (x + y) mod N]。 这只是圆环上的线性变换:由于,黄色,紫色和绿色部分被映射回初始正方形mod N。 该地图(我们称之为f)具有以下属性: 它是双射的,意味着可逆:这是矩阵的线性变换[[2,1],[1,1]]。由于它具有行列式1且仅具有整数项,因此逆数也仅具有整数项并由给出[[1,-1],[-1,2]],这意味着它在整数坐标上也是双射的。 它是图像双射图组中的一个扭转元素N x N,这意味着如果将其应用足够多次,您将获得原始图像:f(f(...f(x)...)) = x保证将图应用于自身导致身份的次数减少或等于3*N。在下面的内容中,您可以看到经过多次重复应用Arnold的cat map之后的猫的图像,以及重复应用的外观的动画: 细节 您的程序不必一定要处理图像,但是2D数组/矩阵,字符串或类似的2D结构也是可以接受的。 您的(0,0)点位于左下角还是左上角都没关系。(或在其他任何角落,如果使用您的语言更方便)。请指定您在提交中使用的约定。 测试用例 矩阵形式([1,2,3,4]是第一行,1具有index (0,0),2具有index (1,0),5具有index (0,1)) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 maps …

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.