実現したいこと
下に示すプログラミングがどのように動いているのかを知りたいです。
まず、画像を読み込んで、その後からどのような順番で処理をしているのかプログラミング初心者なのであまりよくわかりません。
できれば、この関数がこのような働きをしているというところまで
教えて頂けたら幸いです。
該当のソースコード
#!/usr/bin/env python # -*- coding: utf-8 -*- import sys import math from PIL import Image Image.MAX_IMAGE_PIXELS = 1000000000 def count(img, x, y, b): """ img: 対象画像、x,y: 画像のサイズ、b: ボックスのサイズ """ i = 0 j = 0 c = 0 while i < x and j < y: flag = False for k in range(0, b): for l in range(0, b): if i+k < x and j+l < y: if img.getpixel((i+k,j+l)) == 0: """ ボックスに図形が含まれていたらカウントして次の図形へ """ c += 1 flag = True break if flag: break i += b if i >= x: """ ボックスが右端に達したら左端に戻す """ i = 0 j += b return c # 図形が含まれていたボックスの数を返す img = Image.open('test.png').convert('1') # 画像を読み込んで二値化 x, y = img.size # 画像サイズを取得 i = int(x/10) while i > int(x/1000): n = count(img, x, y, i) print(math.log(i), math.log(n)) i = int(i / 2)
補足情報(FW/ツールのバージョンなど)
Python 3.11.4、jupyternotebookを使用しています。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/11/09 01:21
2023/11/09 02:56
2023/11/15 15:11
2023/11/16 01:03
2023/11/16 04:02 編集
2023/11/16 02:32
2023/11/16 04:17
2023/11/16 04:55
2023/12/02 14:07 編集