有什么简单的方法可以让图像变得无人识别?
我想让一张图片变得难以识别,而且要高效。
我不想只是把它变成完全黑色——我希望看这张图片的人相信,这确实是一张从他们之前见过的图片生成的独特图片。
我试着把一张图片模糊处理了100次,但这个过程慢得要命,我在想有没有什么好的方法可以做到这一点。
我在想,是否可以在Python中“打乱像素”,专门为这个目的。
请帮帮我。
我从你们那里得到了一些建议,然后我写了以下代码:
imageFile = "myfile.png"
im1 = Image.open(imageFile)
l = list( im1.tostring())
random.shuffle(l)
Image.fromstring('RGB', (100,100), ''.join(l) ).save('out.png')
编辑:我把我写的代码贴上来了。这个过程对CPU的要求很高。
4 个回答
0
先应用一系列快速的滤镜。模糊处理会消耗很多计算资源,所以你可以选择反转颜色、切换像素组、水平翻转和/或垂直翻转这些操作...
1
从一个3x3的小方块中取出一个像素,然后用这个像素替换掉整个方块。这样做的结果就是你得到了一个更小的图像,虽然你并不需要真的去调整图像的大小(因为有些图像会变得太小,根本看不清)。这个方法和模糊效果有关,但其实更简单、更快,最终得到的是一种像素化的效果,而不是那种视觉上的模糊。
举个例子:
xxxxxx
xAxxBx
xxxxxx
xxxxxx
xCxxDx
xxxxxx
变成:
AAABBB
AAABBB
AAABBB
CCCDDD
CCCDDD
CCCDDD
你可以根据需要调整方块的大小。
0
为什么不直接打乱像素的顺序呢?根据你想要的可识别程度,你可以对每个像素单独打乱,或者把图片分成几个小块,然后只打乱这些小块。