以前このような質問をしたものです。
このプログラムから黒、白それぞれ合計の画素数がいくつあるのかを求めたいです。
書き方を変えてfor文で数を数える方法などを自分で試しましたがなかなかうまくできません。
・出したい結果
cleam,red, yellow,blueに囲まれたwhiteの画素数 ○個
clean,yellow,yellow,blueに囲まれたblackの画素数 ○個
どなたか、わかるかたお願いいたします。
追記:以下のようなプログラムを追加しましたがうまくできませんでした。
for row in range(len(img)): cnt = Counter(img[row]) if i[0] < 50 and i[1] < 50 and i[2] < 50:#ここをRGBにしたら数えてくれる black += 1 print(str(black))
ご自分で試行錯誤されたコードを掲載してください。(丸投げと思われると回答が付きにくくなりますよ)
追記しました。
コードのインデントが間違っているので、それを直しましょう。
インデントのミスを修正しました。このプログラムではif文にエラーが出てしまいました。配列の部分がおかしいことはわかるのですがRGB値を読み込む際にどのように求めたら良いかがわかりません。
インデントは少し改良されましたが、for文の中でif文の判定がしたいのでは?
今そうなっていないです。
またi[0]などの表記があり、なんとなく何したいかはわかりますが、iという配列やリストが出てきていないのでエラーになります。
修正してみてください。
配列、リストの部分がまだ理解できていないです。
新しいfor文の中でrgbを定義していくのか、それとも新しく別の場所で定義するのか等ヒントもらえると嬉しいです。
自分で以下のようにrgbを定義して見ましたがprintされなかったです。
for row in range(len(img)):
cnt = Counter(img[row])
print(f"{row+1}, count: {dict(cnt)}")
def rgb_to_name(rgb):
r, b, g = rgb
if r < 50 and g < 50 and b < 50:#ここをRGBにしたら数えてくれる
black += 1
print(str(black))
以前の質問でベストアンサーに選ばれた回答のコードは理解されていますか?
今回はそのコードを追加修正したいとのことですので、そちらの理解が未だだと難しいかと思います。
