我想显示丰富,充满活力的图像在我的理论花式定制显示,但由于预算限制,它显示所有的3位颜色!虽然规则抖动会工作,但我不想牺牲分辨率,所以我希望我的图像在时间的动摇!
提供一个输入图像,我想让你向我展示几个3位彩色版本的图像,这样所有图像的平均颜色都是原始图像。
您必须以图像作为输入。
您可以动画图像(返回一个GIF,视频,或在屏幕上),或花费时间作为额外的输入。如果以时间作为输入,则对于给定的图像和时间,输出必须是确定性的,并且必须以静态图像的形式返回。

来自维基共享


在记录输出和将输出转换为gif之间损失了很多质量,因此也提供了一个静态输出。
胜利的条件是密码-高尔夫,正如先前所说的预算限制。
上传答案时,请考虑对照片敏感的风险,并将图片保存到外部链接或包装在扰流板中。您的解决方案运行的视频不是必需的,但欢迎。
发布于 2021-12-01 19:45:20
srand($F[3]=1);
$_=(map{splice@b,rand@b,1}@b=((1)x($o=int$_*8/256),(0)x(8-$o)))[$ENV{F}]for@F[4..$#F];
$_="@F\n"相反,您可以创建一个8帧动画...but图像:
echo 'srand(7);$F[3]=1;$_=(map{splice@b,rand@b,1}@b=((1)x($o=int$_*8/256),(0)x(8-$o)))[$ENV{F}]for@F[4..$#F];$_="@F\n"' > program.pl
wget -N -O img.jpg "https://upload.wikimedia.org/wikipedia/commons/thumb/6/66/Johannes_Vermeer_%281632-1675%29_-_The_Girl_With_The_Pearl_Earring_%281665%29.jpg/335px-Johannes_Vermeer_%281632-1675%29_-_The_Girl_With_The_Pearl_Earring_%281665%29.jpg"
convert -compress none img.jpg img.ppm
perl -i -pe's/\n/ /' img.ppm
for f in {0..7};do cat img.ppm|F=$f perl -ap program.pl > img-frame$f.ppm;done #~10sec
convert -delay 1 -loop 0 img-frame*.ppm img-animated.gif
xdg-open img-animated.gifprogram.pl从STDIN读取一行输入(此挑战的示例图像转换为平原PPM格式),从环境变量F读取帧号0-7 (时间)。上述命令适用于bash shell、wget、来自ImageMagick和xdg-open的convert程序或任何能够查看动画GIF图像的图像查看器。若要更改为16帧,请将7帧改为15帧,将2幅8's改为16帧。https://drive.google.com/file/d/1s5WDGjwKLowdmildkYxUWGOWpRjS-Av6/view?usp=sharing图片:
发布于 2021-12-02 00:25:28
Sign[#-Mod[1##,1]]&输入[image,time],其中image是一个3通道的RGB Image,并输出一个帧.
一种相当简单的方法:每当累积值的下限增加时输出。Mathematica的Images支持算法,可以包含任意大小的值,但当显示时夹紧在0到1之间。
对于OP中的图像( t=1,2的GIF输出),可以查看...,255 (警告:闪烁颜色块)。平均帧数:

https://codegolf.stackexchange.com/questions/237868
复制相似问题