国旗には何色がよく使われているのか? - Pythonで色相の頻度分布を調べてみる
概要
Wikipediaを見ると206カ国の国旗が掲載されていますが、国旗にはどのような色が使われる傾向にあるのでしょうか。
ぱっと見では原色系の派手な色が多いような…?
国旗の一覧 - Wikipedia
実際はどうなのか、画像処理によって調べてみました。
具体的には、
- Python + Beautiful Soupによるスクレイピングで国旗画像を取得
- Python + OpenCVによる画像処理で色相の頻度分布を計算
- Javascript + Canvasによって頻度分布を分かりやすく可視化
ということを行います。
目次:
- 概要
- 方法・結果
- 基本的な方針
- 色相
- 頻度の定義
- Pythonによるスクレイピング
- OpenCVによる画像処理
- Javascriptによる頻度の可視化
- 基本的な方針
- 考察
- ソースコード
- Python(スクレイピング・OpenCV・ファイル出力)
- HTML, Javascript(可視化)
- おわりに
- 関連

名曲の楽譜データをMusicXML形式で入手し、プログラムで可視化する方法
はじめに
様々な曲の楽譜をデータとして扱えたら楽しそうだと思いませんか?
かといって手動で入力するのも大変です。どこかでダウンロードできると嬉しい…
調べてみたところ、クラシック音楽の楽譜データの多くがCC Zeroライセンスで公開されていることが分かりました。この記事では、
- 好きな曲の楽譜データを検索・ダウンロードする方法
- 楽譜データのファイル形式・解析方法
- Pythonを使って楽譜データをプログラム中の配列として取り込む方法
- 取り込んだ楽譜データをグラフで可視化する方法
を紹介しています。
目次
- はじめに
- MusicXMLファイルのダウンロード
- MusicXMLファイルの展開
- 拡張子を.mxlから.zipに変更
- 解凍
- 確認
- MusicXMLの内容
- どこが重要か
- パートリスト
- パート
- 1. <measure number="1" width="***">:小節
- 2. <attributes>:調・拍子・音符の最小長さを規定
- 3. <note>:音符や休符
- 3. <backup>:時間の巻き戻し
- Pythonプログラムで扱う方法
- おおまかな流れ
- 使う道具
- ソースコード
- 要点
- 完全版
- 今後の活用
- 資料・関連記事

ヒマワリと黄金比の関係をインタラクティブなアニメーションにする【Javascript】【Canvas】
はじめに
先日、『数学で生命の謎を解く』という本を読みました。この本の第4章「花の中にみつかるフィボナッチ」には、植物の葉・ヒマワリの種子・パイナップルの模様がフィボナッチ数列*1と深く関わっていることが説明されています。
「花の中のフィボナッチ」は数学と生命科学の関係を述べた文章に必ずと言っていいほど登場する鉄板ネタなのですが、本書には以下のような興味深いモデル(フォーゲルのモデル)が紹介されていました。
1979年にミュンヘン工業大学のヘルムート・フォーゲルが、ヒマワリの種子が取る幾何の単純な数学的表現を考え、それを使って、そのような配置に黄金角が特別適している理由を説明した。*2
フォーゲルのモデルでは、n番目の原基は137.5度のn倍の角度に置かれ、中心からの距離はnの平方根に比例する。これらの二つの数によって原基の位置が決定し、ホフマイスターの生長らせんは、中心から外側へ行くにつれ巻き方がきつくなる、フェルマーらせんと呼ばれるものであることが分かる。
フォーゲルはこのモデルを用いて、同じ生長らせんを使いながらも黄金角137.5度からわずかにずらしたときに、花頭がどうなるかを導き出した。結果は、(中略)黄金角を使ったときにだけ、種子は隙間や重なりを作らずにびっしり並ぶのだ。角度を10分の1度変えただけで、パターンが壊れて一種類のらせんだけになり、種子のあいだに隙間ができてしまう。
『数学で生命の謎を解く』p59 (太字は引用者による)
これを自分で実装し、アニメーションにしてみました!
*2:Vogel, Helmut. "A better way to construct the sunflower head." Mathematical biosciences 44.3 (1979): 179-189.
某エンブレムをフラクタル化して無限にズームし、面積も求める
はじめに
東京オリンピックのエンブレムについて一悶着あったようですね。詳しいことは知りませんが、エンブレムの面積を計算している方がいて人生楽しそうだなと感じました。
この姿勢を見習い、本記事ではエンブレムをフラクタルっぽくしてみることにします。さらに、フラクタル図形は無限に細かい形状といえるので、HTML5のCanvasを用いて無限にズームし続けるアニメーションを製作します。そして最後に、こうしてできたフラクタル図形の面積を計算して締め括ることとします。
参考:フラクタル図形とは、図形の部分と全体が自己相似になっているようなマトリョーシカ的図形のことです↓
フラクタル - Wikipedia
現代美術館の展示を数学的に解説【ガブリエル・オロスコ展】
はじめに
(この記事は、現代アートの幾何学的な作品を理系的な目線から分析してみようと試みたものです。)
この前の週末に、東京都現代美術館で開催中の「ガブリエル・オロスコ展-内なる複数のサイクル」に行ってきました。
上記の公式Webサイトでは卓球台や車の展示写真が紹介されているのですが、正直言ってそれらの写真やポスターからは何の魅力も感じていなかったんですね。それにも関わらずダメもとで行ってみた*1ところ、これが面白かったのです。ガブリエル・オロスコはたぶん「かたち」に大きな関心を寄せていて、そのあたりが私の個人的な興味に合致していたみたいです。
作品を普通に解説してもおもしろくないので、ここではちょっとした数学(ほぼ算数)を使って彼の作品を紐解いていきましょう。
*1:現代美術館のあたりが好きなのと、他の展示はすでに訪れていたため。
テオ・ヤンセン機構の計算【詳細版】
はじめに
前回の記事ではテオ・ヤンセン機構のアニメーションを行いました。その際のリンク機構の詳細な動きに関する説明は省略していたのですが、思いのほかブックマークが沢山ついたのでここで説明してみます。
テオ・ヤンセン機構をHTML5 Canvasでアニメーションに - roombaの日記
結構面倒ですが、やっていることは点A~点Gの座標を計算しているだけです(前回の記事中プログラムのdraw_jansen関数に対応)。それさえできてしまえば、あとはその点どうしを線で結ぶだけでリンク機構が描けることになります。そこで、点A~点Gの座標の計算方法を以下で順に説明します。