9/30(月)-10/9(水) つくば駅前で自動運転車に試乗できます☆彡(トナリエ前/エキスポセンター前)

5-29. ピカチュウとハム太郎はどれくらい痩せたか?(円形度で見る)

やること

どうも、Suzuです (゜▽゜)

ロングセラーのアニメキャラクターは時代に合わせてデザインが変化しているそうです。最近、ネットサーフィンをしていたら「初期のピカチュウの方が太っていて可愛い」と言っているサイトを見つけました。確かに初期のピカチュウ(画像左)と今のピカチュウ(画像右)を比べると明らかに今の方が痩せています。なんていうか昔のはずんぐりむっくりしています(ひどい)。ライザ〇プのようなBefore~Afterを成し遂げています。

なお、ハム太郎のほうがもっとひどいです。いま2024年ですがまだ体残ってますか?

今回はピカチュウとハム太郎がどれくらい痩せたのか、画像処理で円形度を測定して定量的に調べてみたいと思います。

参考文献

「丸さ」を表す指標には「真円度」「円形度」があります。こちらのサイトで詳しく説明されているのでご覧ください。

【ImageJで円形度解析】見た目の「丸さ」を表すには、「真円度」よりも「円形度」?
突然ですが、この画像の中で、丸い順に並べるとどうなるでしょうか。正解は、1>2>3>5>4(あくまで個人の見解です)。特に、3と5でどちらが「丸い」と言えるか迷いますよね。5は右上の凹み部分がなければ3よりも丸いと思われますが、手で触った時

こちらのサイトによる、真円度よりも円形度のほうが直感的な丸さを表現している、とのこと。今回は円形度を算出することにしました。

使用した画像

ピカチュウはこちらの画像を拝借しました。1997年発売の手乗りピカチュウも参戦しています(底面に2つの電極があり、手に乗せると「ピカチュウ??」と疑問形で鳴く)。

ハム太郎はこちらの画像を使用させていただきました。

前処理

各画像、耳や尻尾などを無視したボディを白く塗りつぶしました。手作業です。

ハム太郎も同様に二値化しました。

白い領域の大きさが違うと思われるかもしれませんが、これは円形度に影響しないのでご安心を。

コード

円形度は、白い領域の面積(A)と周囲長(L)を求めて「4πA/L2」で求められます。直感的には、「この面積で作られる円の面積」/「この周囲長で作られる円の面積」、という比率を表します。0~1の値が出て、円形度=1は真円です。

こちらがコードです。

import cv2
import numpy as np
import matplotlib.pyplot as plt

#グレースケール画像として読み込む
img = cv2.imread('5-29_p1.png', 0)

#輪郭を取得
contours, hierarchy = cv2.findContours(img, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
print(f'len(contours) = {len(contours)}')

#輪郭を描画
img2 = np.zeros(img.shape, 'uint8')
cv2.drawContours(img2, contours, -1, 255, 2)
plt.imshow(img2, vmin=0, vmax=255, cmap='gray')
plt.show()

#面積
area = cv2.contourArea(contours[0])
print(f'area = {area}')

#周囲長
length = cv2.arcLength(contours[0], closed=True)
print(f'length = {length}')

#円形度
circularity = 4 * np.pi * area / (length**2)
print(f'circularity = {circularity}')
len(contours) = 1
area = 55252.0
length = 901.2346260547638
circularity = 0.85483467169637

ということで昔のピカチュウの円形度は0.85と分かりました!

現代のピカチュウは、

len(contours) = 1
area = 46415.0
length = 880.1564154624939
circularity = 0.7529194234795733

円形度0.75でした。

円形度が0.1くらい低下していることから、現代のピカチュウはスリムになったことが示されました。

結果まとめ

ピカチュウの円形度がこちらです!手乗りピカチュウが丸すぎる!

ハム太郎の円形度はこちらです!順調に痩せています!ちなみに正方形の円形度は0.785です。

さいごに

初代と現代のピカチュウの体型を定量的に比較しました。ネットで指摘されているように、ピカチュウはダイエットに成功していたのですね、、、これがシンデレラ体重とかモデル体重と呼ばれる領域なのでしょうか。

今回のネタに似たことを過去にもやっています。「ポケモンのデザインが丸みを帯びてきているのでは?」に興味がある方はこちらもどうぞ↓

応援はリツイートなどを実行する形でお願いします!また、Qiitaとnoteもやっていますのでフォローお願いします!

Qiita

@Umamusume22のマイページ - Qiita
ロボット開発の仕事をやっています.担当はソフトウェア開発です. Iotやプログラミングが好きです. noteもやっています!: 好きなウマ娘:キタサンブラック

note

Umamusume22|note
メーカー勤務のロボットエンジニア.ソフトウェア開発担当.短大から国公立大学に編入した珍しい経歴の持ち主.情報工学専攻.ROS,ラズパイ,AI,画像処理などのスキルを所有.元ロボコニストで世界大会出場経験あり.普段はPythonとC+を活用.
タイトルとURLをコピーしました