LoginSignup
7
10

More than 5 years have passed since last update.

モザイクの消し方と、消せるモザイクの作り方。 [ python3 PIL tkinter ]

Last updated at Posted at 2018-03-02

モザイクをかけるプログラムと、モザイクを消すプログラムをセットで作りました。

Python NULL.png

python ロゴ 画像処理.png

python bot.png

上のサンプル画像は画像の一部にモザイクがかかっていますが、モザイクはもとから外すことができるように作ってあります。そして画像が異なると、モザイクの模様も異なります。

 

以下がモザイクを外すためのコードです。

from PIL import Image
import os, tkinter.filedialog, tkinter.messagebox

root = tkinter.Tk()
root.withdraw()
fTyp = [("","*")]
iDir = os.path.abspath(os.path.dirname(__file__))
tkinter.messagebox.showinfo('','無修正にしたい画像を選んでください')
file = tkinter.filedialog.askopenfilename(filetypes = fTyp,initialdir = iDir)

im = Image.open(file)
size =im.size

for n in range(2):

    bun = []
    for y in range(size[1]):
        for x in range(size[0]):
            bun.append(im.getpixel((x, y))[0])
    for y in range(size[1]):
        for x in range(size[0]):
            bun.append(im.getpixel((x, y))[1])
    for y in range(size[1]):
        for x in range(size[0]):
            bun.append(im.getpixel((x, y))[2])

    j=0
    for y in range(size[1]):
        for x in range(size[0]):
            r = bun[j]
            g = bun[j+1]
            b = bun[j+2]
            j = j + 3
            im.putpixel((x, y),( r,g,b))

im.save("mosaic01.png")

tkinter.messagebox.showinfo('',"無修正にして保存しました")

python null none.png python PIL.png  python ツイッター.png

※モザイクを外してみたい方はこれらの画像をコピーして使ってみてください。
※コピーした画像をパソコンに保存する際は「.png」で保存するといいかと思います。

 

以下がモザイクをかけるコードです。

from PIL import Image
import os, tkinter.filedialog, tkinter.messagebox

root = tkinter.Tk()
root.withdraw()
fTyp = [("","*")]
iDir = os.path.abspath(os.path.dirname(__file__))
tkinter.messagebox.showinfo('','修正したい画像を選んでください')
file = tkinter.filedialog.askopenfilename(filetypes = fTyp,initialdir = iDir)

im = Image.open(file)
size =im.size

for n in range(2):

    bun = []
    for y in range(size[1]):
        for x in range(size[0]):
            bun.append(im.getpixel((x, y))[0])
            bun.append(im.getpixel((x, y))[1])
            bun.append(im.getpixel((x, y))[2])

    j=0
    for y in range(size[1]):
        for x in range(size[0]):
            r = bun[j]
            g = bun[j + len(bun)//3]
            b = bun[j + len(bun)//3 * 2]
            im.putpixel((x, y), (r, g, b))
            j=j+1

im.save("mosaic01.png")

tkinter.messagebox.showinfo('',"修正して保存しました")

以上がモザイクを消す方法と作り方でした。

 

二階のテンソル https://twitter.com/nikainotensor

7
10
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
10